具有尾部斜杠的Apigee代理" /"

时间:2015-02-15 13:07:26

标签: apigee

我有一个API代理,有两个流,一个返回模式“/ items / {itemId}”之后的项目的详细信息,另一个返回模式后的另一个:/items

<Flows>
    <Flow name="Items by Id">
    <Condition>((proxy.pathsuffix MatchesPath &quot;/{Items}&quot;) ) and (request.verb = &quot;GET&quot;)</Condition>
</Flow>

<Flow name="List of Episodes">
    <Condition>(proxy.pathsuffix MatchesPath &quot;/&quot;) and (request.verb = &quot;GET&quot;)</Condition>
</Flow>

现在,我想支持尾随/到两个端点,这是我面临的问题。当我尝试通过/ /Items/调用来调用API时,Apigee认为它是/Items/{itemId} Items = "",因此会重定向并执行不同的流程。

请告知如何解决这个问题。

1 个答案:

答案 0 :(得分:1)

只需在流程中添加另一行即可捕获两者:

<Flows>
    <Flow name="Items list">
        <Condition>((proxy.pathsuffix MatchesPath '/Items') or (proxy.pathsuffix MatchesPath '/Items/') and (request.verb = 'GET')</Condition>
    </Flow>
    <Flow name="Items by Id">
        <Condition>((proxy.pathsuffix MatchesPath '/items/{itemId}')) and (request.verb = 'GET')</Condition>
    </Flow>
<Flows>

或者,如果你真的很聪明,你可以使用'或'将它们添加到同一个条件行。