如何在 WSO2 EI/ESB 中实现顺序后端调用?

How to implement sequential back-end calls in WSO2 EI/ESB?

我想在 WSO2 Integration Studio 中实现顺序后端调用。

第一次后端调用后,我想将第一次后端调用的响应中的几个字段发送到第二次后端调用。

我尝试在 http 后端调用后的 for-each 循环中使用负载工厂中介,但它只给出最后一个对象。

还有其他方法可以完成吗?

这里不需要 foreach 循环。您可以实施服务链模式。您可以使用 PayloadFactory 调解器创建一个有效负载,以在第二次调用中使用,第二次调用使用第一次调用的响应中的值。看看下面的示例。

<api xmlns="http://ws.apache.org/ns/synapse" name="ServiceChaining" context="/servicechain">
   <resource methods="GET">
      <inSequence>
         <call>
            <endpoint>
               <http uri-template="http://www.mocky.io/v2/5eb1cf1d320000749428f99e"/>
            </endpoint>
         </call>
         <payloadFactory media-type="json">
            <format>{"Hello" : {"test1" :  "", "test3": ""}}</format>
            <args>
               <arg evaluator="json" expression="$.key1"/>
               <arg evaluator="json" expression="$.key3"/>
            </args>
         </payloadFactory>
         <call>
            <endpoint>
               <http method="POST" uri-template="http://www.mocky.io/v2/5185415ba171ea3a00704eed"/>
            </endpoint>
         </call>
         <respond/>
      </inSequence>
   </resource>
</api>