在WSO2 ESB API资源中映射可选查询参数

时间:2015-06-08 08:53:14

标签: wso2 wso2esb

我必须映射查询参数以在WSO2 ESB中的API资源中向端点发送请求。

那些查询参数是可选的。例如,以下是对资源的调用示例:

http://server:port/service?q1={q1}
http://server:port/service?q2={q2}&q3={q3}

我需要一个资源才能做到这一点。

我该怎么做?

基本上,我必须在请求中读取查询参数并将其放入对端点uri的调用中。

1 个答案:

答案 0 :(得分:5)

您可以使用 url-mapping 属性获取动态URI。

以下是一个例子:

<api xmlns="http://ws.apache.org/ns/synapse" name="test_api" context="/testService">
   <resource methods="GET" url-mapping="/*">
      <inSequence>
         <log level="full">
            <property name="paramQ1" expression="$ctx:query.param.q1"></property>
            <property name="paramQ2" expression="$ctx:query.param.q2"></property>
            <property name="paramQ3" expression="$ctx:query.param.q3"></property>
         </log>
         <send>
            <endpoint>
               <address uri="http://localhost:9766/services/"></address>
            </endpoint>
         </send>
      </inSequence>
      <outSequence>
         <send></send>
      </outSequence>
   </resource>
</api>

要验证这些查询参数的存在,可以使用Filter Mediator。可以找到一个很好的例子here

希望它有所帮助。