在 WSO2 ESB API 资源中映射可选查询参数
Mapping optional query params in WSO2 ESB API resource
我必须映射查询参数以将请求发送到 WSO2 ESB 中 API 资源中的端点。
这些查询参数是可选的。例如下面是调用资源的例子:
http://server:port/service?q1={q1}
http://server:port/service?q2={q2}&q3={q3}
我需要一个资源来执行此操作。
我该怎么做?
基本上,我必须读取请求中的查询参数并将其放入对端点 uri 的调用中。
您可以使用 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. A good example of it can be found here。
希望对您有所帮助。
我必须映射查询参数以将请求发送到 WSO2 ESB 中 API 资源中的端点。
这些查询参数是可选的。例如下面是调用资源的例子:
http://server:port/service?q1={q1}
http://server:port/service?q2={q2}&q3={q3}
我需要一个资源来执行此操作。
我该怎么做?
基本上,我必须读取请求中的查询参数并将其放入对端点 uri 的调用中。
您可以使用 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. A good example of it can be found here。
希望对您有所帮助。