我構建了一個基本上期望不同於最終端點期望接收的JSON輸入對象的代理。因此,爲了將請求對象從一個連接到另一個,我使用AssingMessage策略來轉換json輸入。如何在APIGEE中忽略JSON AssignMessage載荷中的空值?
我在做這樣的事情:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Assign-Message-Sample">
<DisplayName>Assign Message-Sample</DisplayName>
<Remove>
<Headers>
<Header name="login_id"/>
<Header name="Authorization"/>
</Headers>
<Payload>true</Payload>
</Remove>
<Set>
<Payload contentType="application/json">
{
"valueA": "{clientrequest.valueA}",
"valueB": "{clientrequest.valueB}",
"valueC": "{clientrequest.valueC}",
"valueD": "{clientrequest.valueD}",
"valueE": "{clientrequest.valueE}",
"valueF": "{clientrequest.valueF}",
}
</Payload>
<Verb>POST</Verb>
</Set>
<IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
<AssignTo createNew="false" transport="http" type="request"/>
</AssignMessage>
問題是當某些值是空的。目標服務器不能正確處理任何空值(從我的控制中轉義)。
我的問題是:如果值爲空,我怎樣才能完全跳過一個參數?
我正在尋找這樣的事情(或更好的選擇):
<Payload contentType="application/json">
{
<skip-if-empty name="clientrequest.valueA">
"valueA": "{clientrequest.valueA}",
</skip-if-empty>
"valueB": "{clientrequest.valueB}",
...
}
</Payload>