【发布时间】:2016-04-26 14:00:01
【问题描述】:
我正在尝试实现 WSO2 API 管理器来处理对 API 端点的调用并对响应进行一些调解。我在发布者中添加了一个 API,为远程 API 设置了一个 http 端点并实现了一些中介。一切正常。 我有以下映射: {context}/{version}/RetrieveResource/{resourceid} -> {api server}/RetrieveResource/{resourceid}
现在我想像这样更改映射: {context}/{version}/Resource/{resourceid} -> {api server}/RetrieveResource/{resourceid}
所以我希望我的 WSO2 api 具有调用远程 api /RetrieveResource/1 的路径 /Resource/1。因此,我尝试在我的顺序中使用重写调解器。这会更改我的“To”标头,但不会调用正确的端点路径。我调用 Resource/1,我将它调解为 RetrieveResource/1,但 WSO2 仍将端点称为 Resource/1,这当然给了我 404。
我的调解员如下所示:
<sequence xmlns="http://ws.apache.org/ns/synapse" name="custom_in">
<property name="WSO2_AM_API_ACCEPT_MESSAGE_TYPE" expression="get-property('transport', 'Accept')" scope="default"/>
<property name="Accept" scope="transport" action="remove"/>
<rewrite xmlns="http://ws.apache.org/ns/synapse">
<rewriterule>
<action value="RetrieveResource" regex="Resource" type="replace" fragment="path"/>
</rewriterule>
</rewrite>
</sequence>
我显然遗漏了一些东西,任何帮助将不胜感激。
【问题讨论】: