繁体   English   中英

如何将XML模拟的有效负载放入由WSO2 ESB发送介体发送的POST请求有效负载中?

[英]How can I put an XML mocked payload into a POST request payload sended by a WSO2 ESB send mediator?

我绝对不是WSO2 ESB的新手,这时候我必须完成第一个简单的任务,但是我真的不知道从哪里开始。

我必须对外部Web服务执行HTTP POST请求 该请求应包含一个经过模拟的XML文档作为有效负载(这时仅需对XML进行模拟,因此我认为我必须将其“写”在某个地方或类似的地方)。

因此,从这个简约的官方教程开始:

https://docs.wso2.com/display/ESB500/Sending+a+Simple+Message

我已经做了以下操作:

1)我创建了一个新的ESB解决方案项目

2)在名为SampleServices的“主”项目上(目前,我使用的是教程的相同名称),我已经将端点注册到了外部Web服务( New- > Endpoint )。

3)然后在这个项目上,我添加了一个新的RESP APINew- > REST API )。 与教程不同,我在API资源属性中启用了POST请求而不是GET ,因为我需要发送包含有效负载的POST请求而不是教程GET请求。 这是我的设置:

在此处输入图片说明

4)然后,按照本教程中的操作,我已经设置了发送中介器,并且在此中介器上,我设置了定义的端点 ,该端点指向必须处理POST请求并检索其有效负载的外部Web服务。

好的,现在我的问题是:如何将模拟的XML文档放入我的*发送调解器**发送的POST请求的正文中?

阅读第二篇教程: https : //docs.wso2.com/display/ESB500/Routing+Requests+Based+on+Message+Content

我知道我可以从外部传递请求有效负载,例如,在第二篇教程中,执行此CURL调用以启动ESB “进程”:

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有效负载 也许必须将其放入发送调解器中,但我不知道...

如何将该XML放入发送介体发送的被请求者的有效负载中? 我在哪里定义\\编写它?

检查此样本:

<?xml version="1.0" encoding="UTF-8"?>
<api context="/services/users" name="ListUsersAPI" xmlns="http://ws.apache.org/ns/synapse">
  <resource methods="GET" protocol="http" url-mapping="/*">
    <inSequence>
      <payloadFactory media-type="json">
        <format>{ "persons":[{ "person": { "Id":"1", "givenName":"ajith", "lastName":"vitharana", "age":"25", "contactInfos":[ { "InfoId":"1", "department":"1", "contactType":"email", "value":"ajith@abc.org" }, { "InfoId":"2", "department":"1", "contactType":"mobile",
          "value":"111111111" }, { "InfoId":"3", "department":"1", "contactType":"home", "value":"Magic Dr,USA" } ] }}, {"person":{ "Id":"2", "givenName":"shammi", "lastName":"jagasingha", "age":"30", "contactInfos":[ { "InfoId":"1", "department":"1", "contactType":"email",
          "value":"shammi@abc.org" }, { "InfoId":"2", "department":"1", "contactType":"mobile", "value":"2222222222" }, { "InfoId":"3", "department":"1", "contactType":"home", "value":"Magic Dr,USA" } ] } }] }</format>
        <args/>
      </payloadFactory>
      <property action="remove" name="NO_ENTITY_BODY" scope="axis2"/>
      <property name="messageType" scope="axis2" type="STRING" value="application/json"/>
      <respond/>
    </inSequence>
    <outSequence/>
    <faultSequence/>
  </resource>
</api>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM