我是WSO2的新手。 我代理了一项服务。现在我正在尝试更改输入请求内容。后端期待下面的请求
<input>
<newParam>
{
"id" :"8888822"
}
</newParam>
</input>
但前端将发送请求如下:
{
"id" :"8888822"
}
没有开始和结束标记。
任何有助于我这样做的文件或链接都会有很大帮助。
提前致谢。
答案 0 :(得分:2)
您可以使用Payload Factory介体[1]来实现此目的。在以下示例中,您只需从请求正文中检索“id”字段的值,并将其附加到预定义的有效负载。
<log level="custom">
<property name="IncomingMessage" expression="$body" />
</log>
<payloadFactory media-type="xml">
<format>
<input>
<newParam>
$1
</newParam>
</input>
</format>
<args>
<arg evaluator="xml" expression="fn:concat('{"id":"', //id/text(), '"}')" />
</args>
</payloadFactory>
<log level="custom">
<property name="TransformedMessage" expression="$body" />
</log>
您会在IncomingMessage
中看到TransformedMessage
和wso2carbon.log
。
[1] - https://docs.wso2.com/display/ESB481/PayloadFactory+Mediator