我尝试使用(wso2 API manager1.9)创建POST API,它将接受请求作为JSON有效负载并使用有效负载工厂中介更改请求的有效负载并将新的有效负载传递给后端代理以获取回应。
POST API的有效负载:
{
"id" :"8888822",
"l_name" : "aiiii",
"f_name" : "lllla"
}
我需要在JSON有效负载中附加JSON有效负载并发送到后端。你能告诉我如何实现这个目标吗?我尝试过有效负载工厂介体,并通过如下。
<input>
<newParam>
{
"sm_id" :"8888822",
"l_name" : "aiiii",
"f_name" : "lllla"
}
</newParam>
</input>
<payloadFactory>
<format>
<input>
<newParam>
"id" :"$1",
"lname" : "$2",
"fname" : "$3"
</newParam>
</input>
<args>
<arg expression="//input/newParam/id">
<arg expression="//input/newParam/lname">
<arg expression="//input/newParam/fname">
</arg></arg></args>
</payloadFactory>
但是它没有用,请你告诉我这个问题或者任何需要做的改变。
我非常感谢你对此的快速反应。
答案 0 :(得分:0)
您可以使用以下命令将Json值提取到属性中:
<property xmlns:ns="http://org.apache.synapse/xsd" name="id" expression="json-eval($.id)" scope="default" type="STRING">
等。
然后在有效载荷内:
<payloadFactory>
<format>
<input>
<newParam>
{
"sm_id" :"$1",
"lname" : "$2",
"fname" : "$3"
}
</newParam>
</input>
</format>
<args>
<arg expression="get-property('id')">
<arg expression="get-property('lname')">
<arg expression="get-property('fname')">
</arg></arg></arg></args>
</payloadFactory>