Как сделать дополнительный HTTP-вызов внутри API и обработать ответ? - PullRequest
0 голосов
/ 27 декабря 2018

Я пытаюсь создать Политику передачи сообщений, с помощью которой я могу сделать дополнительный http-вызов, обработать ответ и обогатить текущее сообщение.Как я могу это сделать?Я использую вызов Mediator, но я не понимаю, как обрабатывать ответ.

<?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 голосов
/ 10 января 2019

Вы можете использовать PayloadFactory Mediator [1] для обработки / форматирования ответа, который вы получили, вызвав конечную точку внутри посредника Call.

Пример может быть таким.Допустим, вы хотите предоставить объект json, заполнив значения из полученного вами ответа;Вы можете определить формат объекта json в разделе «format» и заполнить значения, указав аргументы в разделе «args» посредника PayloadFactory, как показано ниже.


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