我正在尝试使用WSO2 API Manager为我的RESTful API设置代理。我的问题是来自后端API的响应保持不变,因此连接到其他端点的所有URL仍然引用后端服务器而不是代理。我需要一种方法来替换响应体中的url值以指向代理api。我了解这可以通过Mediation Extensions使用ESB Mediators完成。
我不熟悉他们选择一个更适合这份工作的人。 URLRewrite介体看起来非常简单,但它似乎不适用于邮件正文而是标题。 Payload Factory似乎需要一个固定的消息结构,这对我来说不是很方便,因为我需要它来处理我的API提供的不同响应(我不想在那里维护这些结构)调解员定义)。
答案 0 :(得分:1)
我设法通过设置应用程序检查的标头来构建其网址来解决问题:X-Forwarded-Host
和X-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>
这就是诀窍。