如何在 WSO2 ESB 中实现虚拟 REST API

How to implement a dummy REST API in WSO2 ESB

我一直在尝试在 WSO2 ESB 中实现一个简单的心跳 REST API,但无法得到响应。下面是 API

<api xmlns="http://ws.apache.org/ns/synapse" name="HealthCheckAPI" context="/HealthCheck">
   <resource methods="GET" url-mapping="/status" faultSequence="fault">
      <inSequence>
         <payloadFactory media-type="json">
            <format>{"Status":"OK"}</format>
            <args></args>
         </payloadFactory>
         <log>
            <property name="JSON-Payload" expression="json-eval($.)"></property>
         </log>
         <property name="messageType" value="application/json" scope="axis2" type="STRING"></property>
         <respond></respond>
      </inSequence>
   </resource>
</api>

当我卷曲 API 时,响应长度为零。有什么问题吗?

curl -v http://localhost:8280/HealthCheck/status

涩, 在您的 属性 调解器中使用以下表达式。 json-eval($.Status)

您需要设置以下属性。

<property name="NO_ENTITY_BODY" scope="axis2" action="remove"></property>

请找到工作示例

<api xmlns="http://ws.apache.org/ns/synapse" name="HealthCheckAPI" context="/HealthCheck">
   <resource methods="GET" url-mapping="/status" faultSequence="fault">
      <inSequence>

         <payloadFactory media-type="json">
            <format>{"Status":"OK"}</format>
            <args></args>
         </payloadFactory>
         <log>
            <property name="JSON-Payload" expression="json-eval($.)"></property>
         </log>

         <property name="NO_ENTITY_BODY" scope="axis2" action="remove"></property>
         <property name="messageType" value="application/json" scope="axis2" type="STRING"></property>
         <respond></respond>
      </inSequence>
   </resource>
</api>