首页 文章

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

提问于
浏览
1

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

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

1 回答

  • 1

    我设法通过设置我的应用程序检查以构建其URL的头文件来解决它: 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>
    

    这就是诀窍 .

相关问题