如何在 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>
我想在 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>