我使用wso2 ESB以json格式创建rest API。我有一个宁静的json webservice,它给出了响应。我需要在另一个服务调用中使用此响应的一个参数。 我怎样才能在wso2 ESB中进行这种服务链接。
代表: -
我有一个安静的网址,如abc.com/cusotmer。我得到了回复。假设" id"是响应的参数之一。 我想在另一个服务调用(例如xyz.com/sheet)中使用此参数,该调用在内部调用第一个服务(abc.com/cusotmer)。
你们中有谁可以帮助我吗?
答案 0 :(得分:0)
服务链是任何ESB中的重要特征。
您可以使用Call Mediator将控件保留在序列中(比如您的密码)
你可以使用第一个端点的调用,第二个端点我假设id在响应体中可用,你可以使用json-eval或xpath来获取这个值,具体取决于你可以使用的第二个服务使用的数据类型PayloadFactoryMediator并在所需的身体部位设置ID
在下一行中,您可以使用Call Mediator或Send
再次拨打电话粗略的代码就像。
<payloadFactory media-type="json">
<format>
{ "A": "6", "tests": [{ "id": "xyz", "status": "new", "emp": [{ "Id": "12345" }] }], "student": [{ "Id": "65", "Name": "Ram" }] }
</format>
</payloadFactory>
<call>
<endpoint>
<http method="get" uri-template="http://192.168.1.10:8088/mockaxis2service"/>
</endpoint>
</call>
<!-- suppose id field comes as response in field name id2 -->
<payloadFactory media-type="json">
<format>
{
"inp2second":"$1"
}
</format>
<args>
<arg expression="$.emp.id2"/>
</args>
</payloadFactory>
<call> or <send>
您现在可以使用调用或发送调解器,发送调解器将控件移到后面。
对于上面用作$.emp.id2
的json表达式,请参考json support page
服务链的示例也可用here
答案 1 :(得分:0)
这是服务链。您可以参考WSO2库文章,该文章通过示例清楚地解释了这一点 http://wso2.com/library/articles/2011/01/wso2-esb-by-example-service-chaining/