【发布时间】:2018-04-18 14:24:03
【问题描述】:
我是 WSO2 ESB 的新手,此时我必须完成第一个简单的任务,但我真的不知道从哪里开始。
我必须向外部 Web 服务执行 HTTP POST 请求。这个请求应该包含一个模拟的 XML 文档作为有效负载(此时 XML 必须只是模拟,所以我认为我必须在某处“写”它或类似的东西)。
所以从这个简约的官方教程开始:
https://docs.wso2.com/display/ESB500/Sending+a+Simple+Message
我做了以下操作:
1) 我创建了一个新的 ESB 解决方案项目。
2) 在名为 SampleServices 的“主”项目上(此时我使用的是与教程相同的名称)我已将 endpoint 注册到我的外部网络服务(新建 -> 端点)。
3) 然后在这个项目中,我添加了一个新的 RESP API(New -> REST API)。与教程不同,我在 API 资源属性 中启用了 POST 请求而不是 GET,因为我需要发送 POST 请求包含有效负载,而不是教程 GET 请求。这是我的设置:
4) 然后,正如教程中所做的那样,我设置了 send mediator,并在此 mediator 上设置了指向我的外部 Web 服务的 defined endpoint必须处理 POST 请求并检索其有效负载。
好的,现在我的问题是:如何将模拟的 XML 文档放入我的 *send mediator** 发送的 POST 请求的正文中?
阅读第二个教程: https://docs.wso2.com/display/ESB500/Routing+Requests+Based+on+Message+Content
我知道我可以从外部传递请求负载,例如在第二个教程中执行这个启动 ESB“进程”的 CURL 调用:
curl -v -X POST --data @request.json http://localhost:8280/healthcare/categories/surgery/reserve --header "Content-Type:application/json"
这会执行一个将 JSON 作为有效负载传递的调用。在前面的示例中运行良好,但对我不利。
我必须在我的 ESB API 流中模拟 XML 文档有效负载,而不是从 CURL 执行的外部请求中获取,因为在第二个实施步骤中它不会被模拟但 il 将来自链中的上一步。
所以我需要这样的流程:
当我的 API 被调用时,它会执行一个 POST 请求,发送一个模拟的 XML 有效负载。也许它必须放入 send mediator 但我不知道...
如何将此 XML 放入 send mediator 发送的请求者的负载中?我在哪里定义\写它?
【问题讨论】:
-
你可以使用 PayloadFactory 调解器。
-
Andrea,最好发布您的 API 或代理 xml...正如 Ernesto 告诉您的那样,尝试在发送中介之前放置一个 payloadfactory 以及您想要的 xml
标签: wso2 wso2esb middleware wso2carbon