私は残りのサービスを次のように作成しました:
<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をヒットした場合テンプレートを使用すると、実際のサービスからの応答が得られるはずです。これどうやってするの?前もって感謝します