我已将WSO2 DSS设置为返回如下数据:
<Products>
<Product>
<SKU>12345678910123</SKU>
<Item>123456</Item>
<ItemName>My Product Name</ItemName>
</Product>
</Products>
如果没有要返回的数据,我只需获得以下内容:
<Products xmlns="http://data.mydomain.com/wso2/Products/getSKUinfo"/>
我已将WSO2 ESB Pass Through Proxy设置为连接到上述服务。当我在像esbhost.domain.com/services/Products/SKU/12345678910123这样的URL中点击服务时,我得到了上述内容。我想要做的是添加一个“状态”节点(或其他任何名称)以基本上返回:
<Products>
<Status>1</Status>
<Product>
<SKU>12345678910123</SKU>
<Item>123456</Item>
<ItemName>My Product Name</ItemName>
</Product>
</Products>
如果没有匹配/没有数据要返回,我希望响应为:
<Products>
<Status>0</Status>
</Products>
这可以在WSO2 ESB中完成吗?或者我是否需要在WSO2 DSS服务中添加内容?
如果我没有使用正确的术语,请原谅我。
谢谢, 贾里德
答案 0 :(得分:1)
是的,可以在ESB中完成。基本上在该代理服务的“outSequence”中,您可以简单地使用filter介体,使用XPath检查有效负载,以检查是否存在匹配或没有数据存在。因此,从过滤器介体,在它们各自的路径中,您可以使用enrich介体构建消息并添加所需的必要元素,如0等。因此,基本上在过滤器介体“true”路径中,您可以将“Product”元素保存在属性中,然后使用enrich将其添加到消息正文中最后创建的元素。您可能需要查看ESB samples以了解这些调解员的工作方式。
干杯, 长香。