如何在apigee中添加条件流以及其他条件?

时间:2014-09-11 08:55:20

标签: apigee

我有一个流程,其中我添加了一个说

的条件
<Flow name="getuserdata">
    <Response>
        <Step>
            <FaultRules/>
            <Name>GetUserData</Name>
        </Step>
    </Response>
    <Condition>(proxy.pathsuffix MatchesPath &quot;/idm/user&quot;) and (request.verb = &quot;GET&quot;) and (request.header.stub = "true")</Condition>
    <Request/>
</Flow>

所以这里发生的是当条件匹配true时,它转到Javascript GetUserData,但我想要做的是当条件为false时它应该转到另一个名为as的服务标注流GetUserDataFromServer

我该怎么做?

2 个答案:

答案 0 :(得分:2)

不幸的是,没有“其他”构造可用。您需要添加另一个与if条件完全逻辑相反的条件。

这带来了两个挑战:

  1. 代码可维护性。您需要有效地保持两次状态。
  2. 在执行期间评估每个条件(即两次而不是一次)
  3. 作为替代方案,如果在python,javascript或java标注策略中包含'if / else块',则可以克服这两个挑战。

    然而,大部分逻辑从XML代理文件中隐藏,并进入支持资源文件。使程序员的可读性降低。

答案 1 :(得分:1)

如果在最后添加没有条件的流 - 如果没有其他匹配则会执行。这与default声明中的switch案例类似。