【问题标题】:modifying URL in wso2 esb在 wso2 esb 中修改 URL
【发布时间】:2017-03-22 16:30:31
【问题描述】:

如何在 WSO2 ESB 服务代理的查询端点中添加静态部分? 我创建了一个直通代理,以使外部 api 可通过 wso2 访问,但 GET/POST 查询被发送到如下链接:

http://host:port/services/service_name/car_name?op=CREATE&user=user1

是一种使 url 的参数部分 ( ?op=CREATE&user=user1 ) 自动添加而无需手动输入的方法,并且客户端只需发送一个 GET 查询到:

http://host:port/services/service_name/car_name

【问题讨论】:

  • 您想将这些查询参数发送到后端而不从用户那里获取它们吗?
  • 是的,但客户使用 curl 或 postman/insomnia

标签: url-rewriting wso2 esb mediator


【解决方案1】:

您可以设置 REST_URL_POSTFIX 属性以添加 REST 上下文路径。然后将此 url 添加到端点 url。

<property name="REST_URL_POSTFIX" value="/car_name?op=CREATE&user=user1" scope="axis2"/>

第二种解决方案是使用 uri.var.* 属性添加到 HTTP endpoint. 参见文档中的示例:

<property name="uri.var.user" value="user1"/>
<property name="uri.var.servicename" value="PizzaWS"/>
<property name="uri.var.category" value="pizza"/>
<property name="uri.var.pizzaType" value="pan"/>
<send>
    <endpoint xmlns="http://ws.apache.org/ns/synapse" name="HTTPEndpoint">
        <http uri-template="http://hot:port/services/service_name/car_name?op=CREATE&user={uri.var.user}" method="GET"/>
    </endpoint>
</send>

这会创建以下请求:

http://hot:port/services/service_name/car_name?op=CREATE&user=user1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-21
    • 1970-01-01
    • 1970-01-01
    • 2012-05-11
    • 2017-06-24
    相关资源
    最近更新 更多