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

时间:2015-02-17 22:58:21

标签: rest wso2 wso2esb 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

2 个答案:

答案 0 :(得分:6)

您需要设置以下属性。

<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>

答案 1 :(得分:0)

石埠, 在属性介体中使用以下表达式。  JSON-的eval($。状态)