wso2 api manager修改发送到后端的JSON有效负载

时间:2017-11-13 19:03:16

标签: json url wso2 wso2-am mediator

我将REST API URL定义为

https://hostname/[version]/[service]/[operation]

我希望在WSO2 API Manager中转换JSON有效负载,以便将版本和操作放在里面。

因此,WSO2将以下列形式将其发送到后端:

POST https://backend/[service]
{
    “version”: [version],
    “operation”: [operation]
}

所以我需要将版本和操作从URL放到JSON有效负载中。怎么做?

1 个答案:

答案 0 :(得分:0)

据我所知,您希望使用资源URI定义(而非API上下文)中的值创建新的有效负载和POST。

让我们假设:

  • 您不想更改方法(资源正在使用POST方法)。
  • 发布的原始请求也是JSON

您可能希望创建一个(synapse)中介流,就像ESB构建此类消息一样。

文档Adding Mediation Extensions中描述了插入中介。将针对API的每个请求执行此中介

拥有资源https://hostname/[version]/[service]/[operation]

在中介中,您可以构建JSON有效内容

<payloadFactory media-type="json">
  <format>{
      "version":"$1", 
      "service": "$2", 
      "some_original_data": "$3"
    }</format>
  <args>
    <arg  expression="get-property('uri.var.version')"/>
    <arg  expression="get-property('uri.var.service')"/>
    <arg  expression="$.person.name" evaluator="json" />
  </args>
</payloadFactory>