更改WSO2中的请求有效负载

更改WSO2中的请求有效负载,wso2,wso2carbon,Wso2,Wso2carbon,我是WSO2的新手。 我已经代理了一项服务。现在我正在尝试更改输入请求内容。后端需要一个如下所示的请求 <input> <newParam> { "id" :"8888822" } </newParam> </input> 没有开始和结束标记 任何文件或链接,这将有助于我做到这一点将是巨大的帮助 提前感谢。您可以通过使用负载工厂中介器[1]来实现这一点。在下面的示例中,您只需从请求主体中检索“id”字段的值,并将

我是WSO2的新手。 我已经代理了一项服务。现在我正在尝试更改输入请求内容。后端需要一个如下所示的请求

 <input>
 <newParam>    
 {
    "id" :"8888822"   
 }
 </newParam>
 </input>
没有开始和结束标记

任何文件或链接,这将有助于我做到这一点将是巨大的帮助


提前感谢。

您可以通过使用负载工厂中介器[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('{&quot;id&quot;:&quot;', //id/text(), '&quot;}')" />
        </args>
    </payloadFactory>
    <log level="custom">
      <property name="TransformedMessage" expression="$body" />
   </log>

$1

嗨,查米拉,非常感谢你的回复。这有助于我前进。我应用了payload factory mediator,但我只是检查是否可以在跟踪或日志中看到传入的输入内容,以及在应用策略后它是如何转换的,因为我在server.log中没有看到它。我编辑了答案以包含日志消息。希望这有帮助。
    <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('{&quot;id&quot;:&quot;', //id/text(), '&quot;}')" />
        </args>
    </payloadFactory>
    <log level="custom">
      <property name="TransformedMessage" expression="$body" />
   </log>