0

私は残りのサービスを次のように作成しました:

<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、タグ、ソース、状態、およびカテゴリの 5 つのパラメーターを受け入れます。実際のサービスでは、ID、タグ、ソース、状態、または優先度などの任意のパラメーターを渡すことができ、サービスは渡されたパラメーターに基づいてデータを提供します。

同様に、残りのサービスでもまったく同じことをしたい、つまりuriテンプレートでこれらの5つのパラメーターを実装したいので、論理またはで区切られた5つのuriテンプレート変数を作成して、任意のURIで残りのサービスのURLをヒットした場合テンプレートを使用すると、実際のサービスからの応答が得られるはずです。これどうやってするの?前もって感謝します

4

1 に答える 1

2

クエリの数がある場合は、url-mapping="/*"の代わりに使用できます。uri-templateこの投稿を確認してください。

于 2013-06-20T15:05:02.523 に答える