WSO2 API Manager - 替换响应正文中的URL

时间:2014-05-27 15:45:21

标签: web-services rest wso2 wso2-am

我正在尝试使用WSO2 API Manager为我的RESTful API设置代理。我的问题是来自后端API的响应保持不变,因此连接到其他端点的所有URL仍然引用后端服务器而不是代理。我需要一种方法来替换响应体中的url值以指向代理api。我了解这可以通过Mediation Extensions使用ESB Mediators完成。

我不熟悉他们选择一个更适合这份工作的人。 URLRewrite介体看起来非常简单,但它似乎不适用于邮件正文而是标题。 Payload Factory似乎需要一个固定的消息结构,这对我来说不是很方便,因为我需要它来处理我的API提供的不同响应(我不想在那里维护这些结构)调解员定义)。

1 个答案:

答案 0 :(得分:1)

我设法通过设置应用程序检查的标头来构建其网址来解决问题:X-Forwarded-HostX-Forwarded-Proto

所以我创建了一个看起来如下的Header Mediator:

<sequence xmlns="http://ws.apache.org/ns/synapse" name="WSO2AM--Ext--In">
    <header name="X-Forwarded-Host" expression="get-property('transport','Host')" scope="transport"/>
    <header name="X-Forwarded-Proto" value="https" scope="transport"/>
</sequence>

这就是诀窍。