# イベントストリーム
イベントストリームAPIを使用すると、ユーザーはイベントトピックからメッセージを公開および取得できます。トピック内の各メッセージには、オフセットとして使用されるIDがあります。このエンドポイントを使用するには、message IDまたはlast message timestampのいずれかを保存する必要があります。
WorkatoイベントストリームAPIのOpenAPI仕様はこちら (opens new window)からアクセスできます。
WORKATO EVENT STREAMS の新しいAPIドメイン
Workatoは、Event streams APIを新しいドメインに移行しました:
event-streams.workato.com
www.workato.com/api
に公開されている従来のエンドポイントは引き続き動作しますが、1分あたり1000リクエストに制限されています。
従来のドメインは、このページに記載されているのと同じリクエストおよびレスポンス形式で、 /consume
および /publish
エンドポイントをサポートしています。
# クイックリファレンス
タイプ | リソース | 説明 |
---|---|---|
POST | /api/v1/topics/:topic_id/consume | トピックからメッセージを取得します。 |
POST | /api/v1/topics/:topic_id/publish | トピックにメッセージを公開します。 |
POST | /api/v1/batch/topics/:topic_id/publish | トピックに複数のメッセージを公開します。 |
# メッセージを取得する
トピックからメッセージを取得します。このリソースでは、トピック内のすべてのメッセージを取得するか、リクエストボディにパラメータを含めて指定されたIDまたはタイムスタンプ以降のメッセージを取得するオプションを提供します。レスポンスは各バッチで最大50件のメッセージに制限されます。
timeout_secs
パラメータを設定することでロングポーリングモードを有効にできます。このモードでは、APIは利用可能なメッセージを即座に返します。メッセージがない場合、APIは最大timeout_secs
秒間待機します。この間に新しいメッセージが現れた場合、即座に返されます。そうでなければ、呼び出しがタイムアウトした後に空のリストを提供します。
POST /api/v1/topics/:topic_id/consume
# URLパラメータ
名前 | 型 | 説明 |
---|---|---|
topic_id | integer required | イベントトピックID。 |
# ペイロード
名前 | 型 | 説明 |
---|---|---|
after_message_id | string optional | メッセージID。サービスは指定されたIDのメッセージ以降のすべてのメッセージを返します。IDはトピック内に存在するメッセージである必要があります。 |
since_time | string optional | RFC 3339形式のタイムスタンプ。サービスは指定されたタイムスタンプ以降のすべてのメッセージを返します。since_time の値が未来の場合、現在の時刻が使用されます。 |
batch_size | integer optional | 返す最大バッチサイズ。最大値は50です。指定しない場合は50件のメッセージを返します。 |
timeout_secs | integer optional | ロングポーリングの最大タイムアウト。最大値は60です。デフォルト値は0です。0の場合、ロングポーリングは無効になります。 |
USING SINCE_TIME PARAMETER
We recommend using after_message_id
to control the topic message cursor. since_time
should only be used only for the first request (to poll messages from a specific timestamp without polling the whole topic), or if for some reason you need to re-retrieve messages from the topic. Using since_time
, especially in combination with batch publish and long polling doesn't guarantee message order and can lead to skipped messages.
# サンプルリクエスト
curl -X POST "https://event-streams.workato.com/api/v1/topics/<id>/consume" \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
--data '{"after_message_id": "A12x"}'
# レスポンス
{
"messages": [
{
"message_id": "A12y",
"payload": {
"Name": "Jane",
"Surname": "Doe"
},
"time": "2023-04-14T15:07:14.437+00:00"
},
{
"message_id": "A12z",
"payload": {
"Name": "John",
"Surname": "Doe"
},
"time": "2023-04-14T15:43:40.227+00:00"
}
]
}
# メッセージを公開する
トピックにメッセージを公開します。メッセージはトピックスキーマに準拠している必要があります。
POST /api/v1/topics/:topic_id/publish
# URLパラメータ
名前 | 型 | 説明 |
---|---|---|
topic_id | integer required | イベントトピックID。 |
# ペイロード
名前 | 型 | 説明 |
---|---|---|
JSON required | トピックに公開するメッセージ。メッセージはトピックスキーマに準拠している必要があります。 |
# サンプルリクエスト
curl -X POST "https://event-streams.workato.com/api/v1/topics/<id>/publish" \
-H 'Authorization: Bearer <token>' \
--data '{"Name": "John", "Surname": "Doe"}'
# レスポンス
{
"message_id": "A1BRi"
}
# 複数のメッセージを公開する
複数のメッセージをトピックに公開します。メッセージはトピックスキーマに準拠している必要があります。
POST /api/v1/batch/topics/:topic_id/publish
# URLパラメータ
名前 | 型 | 説明 |
---|---|---|
topic_id | integer required | イベントトピックID。 |
# ペイロード
名前 | 型 | 説明 |
---|---|---|
payloads | Array of JSON required | トピックに公開するメッセージの配列。メッセージはトピックスキーマに準拠している必要があります。配列の最大サイズは100です。 |
# サンプルリクエスト
curl -X POST "https://event-streams.workato.com/api/v1/topics/<id>/publish" \
-H 'Authorization: Bearer <token>' \
--data '{"payload":[{"Name": "John", "Surname": "Doe"},
{"Name": "Jane", "Surname": "Doe"}]}'
# レスポンス
{
"is_partial_error": false,
"message_ids": {
"0": {
"message_id": "A1DFi",
"result": "success"
},
"1": {
"message_id": "A1DL8",
"result": "success"
}
}
}
Last updated: 2024/12/18 21:44:08