在wso2 esb中创建休息服务时的多个Uri模板

时间:2013-06-20 12:26:07

标签: rest wso2 wso2esb uritemplate

我创建了一个休息服务:

<api xmlns="http://ws.apache.org/ns/synapse" name="GetCacheDataAPI" context="/GetCacheData/GetNotifications">
   <resource methods="GET" uri-template="?ID={searchValue}" inSequence="GetNotificationsIN" outSequence="GetNotificationsOUT"/>
</api>

在我的InSequence GetNotificationsIN 我的有效负载是:

    <payloadFactory>
                <format>
                   <p:Cache xmlns:p="http://tempuri/Notification/">
                      <in xmlns="">
                         <xs:ID xmlns:xs="http://tempuri/Notification/">$1</xs:ID>
                         <xs:TagName xmlns:xs="http://tempuri/Notification/">$2</xs:TagName>
                         <xs:Category xmlns:xs="http://tempuri/Notification/">$3</xs:Category>
                         <xs:State xmlns:xs="http://tempuri/Notification/">$4</xs:State>
                         <xs:SourceID xmlns:xs="http://tempuri/Notification/">$5</xs:SourceID>
                      </in>
                   </p:Cache>
                </format>
                <args>
                   <arg expression="get-property('uri.var.searchValue')"/>
<arg expression="get-property('uri.var.searchValue')"/>
<arg expression="get-property('uri.var.searchValue')"/>
<arg expression="get-property('uri.var.searchValue')"/>
<arg expression="get-property('uri.var.searchValue')"/>
</args>
             </payloadFactory>

现在我已经传递了一个参数,即ID,并且工作正常。但我实现其余服务的实际服务接受五个参数,即ID,Tag,Source,State和Category。在实际服务中,我可以传递任何一个参数,即ID,Tag,Source,State或Priority,服务根据传递的参数给我数据。

Simillarly我想在我的休息服务中做同样的事情,即在uri模板中,我想实现这五个参数,从而制作五个uri模板变量,这些变量由逻辑分开或者如果我点击了休息服务的url使用任何uri模板,它应该给我实际服务的响应。我怎样才能做到这一点?提前致谢

1 个答案:

答案 0 :(得分:2)

如果有多少查询,您可以使用url-mapping="/*"代替uri-template。 请检查此post.