簡體   English   中英

修改服務器響應有效負載JSON

[英]Modifying Server Response Payload JSON

我正在修改服務器發送的響應。 為此,我建立了一個測試API,該API旨在僅以以下格式發送IP:

{
  "origin": "202.37.75.130"
}

我未修改的代碼給了我想要的東西。

作為測試,我希望將“ origin”的名稱更改為“ IP Address”,希望得到這樣的響應:

{
  "IP Address": "202.37.75.130"
}

為此,我修改了代碼的outSequence部分,使其成為了(我添加的只是PayloadFactoryMediator部分,之前有過濾器):

<outSequence>
  <payloadFactory media-type="json">
    <format>{
      "IP Address" : {
      "$1"
      }
      }
    </format>
    <args>
      <arg evaluator="json" expression="$.origin"/>
    </args>
  </payloadFactory>
  <filter source="get-property('CORS_ORIGIN')" regex=".+">
    <then>
      <property name="Access-Control-Allow-Origin" expression="get-property('CORS_ORIGIN')" scope="transport"/>
      <property name="Access-Control-Expose-Headers" value="Assertion,X-Jwt-Assertion,X-User-Name,X-User-Domain" scope="transport"/>
    </then>
  </filter>
  <send/>
</outSequence>

但是,當我像以前一樣卷曲到API時,得到一個響應:

curl:(52)來自服務器的空回復

誰能告訴我我做錯了什么?

我通過為位於“ http://ip.jsontest.com/ ”的json服務創建代理服務來嘗試了您的方案,並得到了預期的結果。 但是我使用了與您相同的“ payloadFactory”配置。 在下面檢查我的完整配置。

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="ipservice"
       transports="https,http"
       statistics="disable"
       trace="disable"
       startOnLoad="true">
    <target>
        <outSequence>
            <payloadFactory media-type="json">
                <format>{
                    "IP Address" : {
                    "$1"
                    }
                    }
                </format>
                <args>
                    <arg evaluator="json" expression="$.ip"/>
                </args>
            </payloadFactory>
            <send/>
        </outSequence>
        <endpoint>
            <address uri="http://ip.jsontest.com/"/>
        </endpoint>
    </target>
    <description/>
</proxy>

我也嘗試了使用filter標簽的上述配置。 工作正常。 因此,以上配置沒有錯誤。 請檢查您的JSON服務和其他配置。

我使用以下命令調用了該服務。

curl -v -X GET "http://localhost:8280/services/ipservice"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM