[英]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.