如何在api中进行额​​外的http调用并处理响应?

时间:2018-12-27 17:51:07

标签: wso2 wso2-am

我正在尝试创建消息中介策略,通过它可以进行附加的http调用,处理响应并丰富当前消息。我怎样才能做到这一点?我使用呼叫调解器,但不了解如何处理回复。

<?xml version="1.0" encoding="UTF-8"?> <sequence name="call_out_handler" trace="disable" xmlns="http://ws.apache.org/ns/synapse">
<call blocking="true">
    <endpoint>
        <http method="get" uri-template="http://192.168.99.100:8888/stubFORAPIMan/ServletWithTimeout"/>
    </endpoint>
</call> </sequence>

1 个答案:

答案 0 :(得分:1)

您可以使用PayloadFactory介体[1]通过调用“调用”介体中的终结点来处理/格式化收到的响应。

一个例子就是这样。假设您想通过从收到的响应中填充值来提供json对象;您可以在“格式”部分中定义json对象格式,并通过在PayloadFactory介体的“ args”部分中提供参数来填充值,如下所示。


    <payloadFactory media-type="json">
       <format>
          {
          "Data": {
          "PaymentSubmissionId": "$1",
          "PaymentId": "$2",
          "Status": "$3",
          "CreationDateTime": "$4"
          }
          } 
       </format>
       <args>
          <arg evaluator="xml" expression="$body//PaymentSubId"/>
          <arg evaluator="xml" expression="$body//PaymentId"/>
          <arg evaluator="xml" value="AcceptedSettlementInProcess"/>
          <arg value="2019-06-05T15:15:22+00:00"/>
       </args>
    </payloadFactory>
    <property name="messageType" value="application/json" scope="axis2" type="STRING"/>

[1] https://docs.wso2.com/display/EI640/PayloadFactory+Mediator