Web サービス (REST) があります。ストリームにイベントが来るたびに WS を呼び出したいです。
Siddhi の拡張機能を作成し、Java から Web サービスを呼び出す必要がありますか?
Web サービスを呼び出すために Java が必要な場合、"Aggregate Function" を拡張する必要がありますか?
シッディには、Web サービスを呼び出すために使用できる命令が存在しますか?
次は私の WS のサンプルです。
コメントしてくれてありがとう
Web サービス (REST) があります。ストリームにイベントが来るたびに WS を呼び出したいです。
Siddhi の拡張機能を作成し、Java から Web サービスを呼び出す必要がありますか?
Web サービスを呼び出すために Java が必要な場合、"Aggregate Function" を拡張する必要がありますか?
シッディには、Web サービスを呼び出すために使用できる命令が存在しますか?
次は私の WS のサンプルです。
コメントしてくれてありがとう
HTTP イベント パブリッシャー[1] を使用して、カスタム コードを記述せずにこの OOTB を実現できます。このパブリッシャーを使用すると、PUT/POST リクエストをカスタム ペイロードで事前定義された URL に送信できます。共有ドキュメントに記載されているように、HTTP パブリッシャーを作成します。次に、カスタム json マッピングを使用して、Web サービスの受け入れられるペイロードを作成できます。カスタム マッピングを作成する場合、次のように中括弧内のイベント属性を参照できます。
{
"payload_name_for_webservice":{{attribute_name_in_event}},
}
[1] https://docs.wso2.com/display/CEP400/HTTP+Event+Publisher
ありがとうございました。
しかし、私はレシーバーと他のパブリッシャーを持っています。
「org.wso2.event.sensor.stream:1.0.0」に新しいイベントが到着したときに、siddhi から WS を呼び出したいのですが、Web サービスへの入力パラメーターは「meta_sensorName」です。
どのように私はそれを作ることができますか?
私のコードはこれです:
/* Enter a unique ExecutionPlan */
@Plan:name('ExecutionPlan')
/* Enter a unique description for ExecutionPlan */
-- @Plan:description('ExecutionPlan')
/* define streams/tables and write queries here ... */
@Import('org.wso2.event.sensor.stream:1.0.0')
define stream sensorStream (meta_timestamp long, meta_isPowerSaverEnabled bool, meta_sensorId int, meta_sensorName string, correlation_longitude double, correlation_latitude double, humidity float, sensorValue double);