我遇到的问题是我认为是一个简单的网址模式匹配,但看到我创建的API的意外行为。
我设置了API,当我放置“URL模式”时,我会做一些简单的事情,比如“/ player / {playerId}”
当我转到下一个屏幕输入端点信息时,我会引用文档中显示的路径变量,例如http://mycoolendpoint.com/playerInfo/{uri.var.playerId}
我最终看到的是整个URL模式被附加到我的端点。因此,在上文中,我看到的是http://mycoolendpoint.com/playerInfo/111
http://mycoolendpoint.com/playerInfo/111/player/111
。
当我使用这种语法时,我是否设置了错误,它将整个URL模式附加到Sandbox和Production端点而不仅仅是路径变量的值?
答案 0 :(得分:1)
<sequence xmlns="http://ws.apache.org/ns/synapse" name="TestSequence">
<property name="REST_URL_POSTFIX" scope="axis2" action="remove"/>
</sequence>
答案 1 :(得分:0)
有两种方法可以通过定义您的API来实现此目的。
1)像这样定义资源。
playerInfo/{playerId}
并像这样定义端点。
http://mycoolendpoint.com/
或
2)定义这样的资源。
/{playerId}
并像这样定义端点。
http://mycoolendpoint.com/playerInfo/
或者你也可以像@ycr提到的那样做。如果您想在不创建自定义序列文件的情况下对所有API进行更改,则可以在<APIM_HOME>/repository/resources/api_templates/velocity_template.xml
文件的InSequence section内添加以下行。
<property name="REST_URL_POSTFIX" scope="axis2" action="remove"/>
当APIM创建新API的synapse文件时,使用此模板。