我正在使用ESB和Camel为我的移动应用程序提供端点。从那里,我需要以这样的方式调用多个Web服务:前一个调用的响应确定是否应该调用下一个,并且需要将相同的请求参数传递给多个调用。
另外,我需要在数据库中保存这些响应。
我想知道使用Camel实现这个特定用例的最佳模式。
有很多方法可以做到 - 只要想想你如何在纯Java中做这样的逻辑,然后将它移到Camel。从行动流程来看,没有区别。你有条件 - 你必须有IF或SWITCH操作。
你的路线看起来像(我用春天):
<cml:to uri="previous_uri"/>
<cml:processor ref="my_selector"/> <!-- it sets Exchange property "next_call" based on result from previous -->
<cml:choice>
<cml:when>
<cml:simple>${exchangeProperty.next_call} =="SERVICE1"/>
<cml:to uri="next_service1_uri"/>
... process Service1 result logic ...
</cml:when>
<cml:when>
<cml:simple>${exchangeProperty.next_call} =="SERVICE2"/>
<cml:to uri="next_service2_uri"/>
... process Service2 result logic ...
</cml:when>
等等...