最終的なエンドポイントが受け取ろうとしているものとは異なるJSON入力オブジェクトを基本的に期待するプロキシを構築しました。そのため、要求オブジェクトを一方から他方にブリッジするために、私はAssingMessageポリシーを使用してjson入力を変換しています。APIGEEのJSON AssignMessageペイロードでnull値を省略する方法は?
私はこのような何かをやっている:
<?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>