我想在WSO2 Integration Studio中实现连续的后端调用。
在第一次后端调用后,我想把第一次后端调用的响应中的一些字段发送到第二次后端调用。
我试着在http后端调用后的for-each循环中使用payload factory mediator,但它只给出最后一个对象。
有什么其他方法可以实现吗?
在这里你不需要foreach循环。你可以实现一个服务链模式。你可以使用 PayloadFactory 调解器创建一个 Payload,以便在第二次调用中使用第一次调用的响应值。请看一下下面的示例。
<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" : "$1", "test3": "$2"}}</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>