[英]How to handle Apigee error case when query parameter checking in proxy
我有以下幾點。 參數“ g”允許為“ on”或“ off”,否則轉到錯誤策略。 但是,從未調用過異常情況。 相反,如果將非“ on”或“ off”的值作為“ g”傳遞,則調用“ on”情況。 這是為什么? 還是有更好的表達方式?
<PreFlow name="PreFlow">
<Request>
<Step>
<Condition>message.queryparam.g := "on"</Condition>
<Name>GOn</Name>
</Step>
<Step>
<Condition>message.queryparam.g := "off"</Condition>
<Name>GOff</Name>
</Step>
<Step>
<Condition>!((message.queryparam.g := "off") || (message.queryparam.g := "on"))</Condition>
<Name>GError</Name>
</Step>
</Request>
我剛剛測試了您的條件,它們可以正常工作。 如果請求具有以下查詢參數值:
g=on
或g=ON
,將執行GOn策略。
g=off
或g=OFF
,將執行GOff策略。
g={anythingelse}
,將執行GError策略。
:=
運算符是不區分大小寫的等於運算符。 您如何確定條件不起作用? 使用您的示例,我將每個策略都設置為具有不同故障響應有效負載的RaiseFault。 這使我可以驗證根據g
的值執行了哪個策略。
我同意Michael,顯示的代碼是正確的。
考慮可能導致此代碼無法正常工作的問題:
如果您有多個條件檢查,請嘗試使用javascritp。在Java腳本中檢查各種條件並設置flag。然后在基於flag的值的流中執行所需的策略。但是對於上述實例,如Michael所指出的,條件應該能按預期工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.