Event streamsパブリックAPI
Event streamsパブリックAPIは、イベントトピックからメッセージをパブリッシュおよび消費するためのエンドポイントを提供します。 このAPIは、イベントトピックを管理できるEvent streams Developer APIとは別のものです。
トピック内の各メッセージには、オフセットとして使用できるIDが含まれています。 これらのエンドポイントを使用するには、メッセージIDまたは最終メッセージタイムスタンプのいずれかを保存する必要があります。
詳細については、OpenAPI仕様を参照してください。
ベースURL
Event streamsパブリックAPIのベースURLは、Workatoアカウントがホストされているデータセンターによって異なります。 これらのURLは、メッセージのパブリッシュと消費を行うエンドポイントにのみ適用されます:
- USデータセンター:
https://event-streams.workato.com - EUデータセンター:
https://event-streams.eu.workato.com - JPデータセンター:
https://event-streams.jp.workato.com - SGデータセンター:
https://event-streams.sg.workato.com - AUデータセンター:
https://event-streams.au.workato.com - ILデータセンター:
https://event-streams.il.workato.com - CNデータセンター:
https://event-streams.workatoapp.cn - KRデータセンター:
https://event-streams.kr.workato.com - 開発者サンドボックス:
https://event-streams.trial.workato.com
EVENT STREAMSのAPIドメインと名前空間の違い
Event streams APIは2つのカテゴリに分かれています。 各カテゴリでは異なるドメインと名前空間を使用します。
パブリックAPI
次のエンドポイントではevent-streamsドメインを使用します:
- メッセージを消費
POST /api/v1/topics/:topic_id/consume - メッセージをパブリッシュ
POST /api/v1/topics/:topic_id/publish - メッセージのバッチをパブリッシュ
POST /api/v1/batch/topics/:topic_id/publish
Developer API
次のエンドポイントでは、標準のDeveloper APIベースURLを使用します:
- トピックをリスト
GET /api/event_streams/topics - トピックを作成
POST /api/event_streams/topics - IDでトピックを取得
GET /api/event_streams/topics/:topic_id - トピックを更新
PUT /api/event_streams/topics/:topic_id - トピックをパージ
PUT /api/event_streams/topics/:topic_id/purge - トピックを削除
DELETE /api/event_streams/topics/:topic_id
詳細については、Event streams Developer APIのドキュメントを参照してください。
レート制限
Event streams Developer APIリソースには、次のレート制限があります:
| タイプ | リソース | 制限 |
|---|---|---|
| すべて | すべてのEvent streams公開APIエンドポイント | 1分あたり60リクエスト |
さらに、Event streamsパブリックAPIリソースには、次のペイロード制限があります:
| タイプ | リソース | 制限 |
|---|---|---|
| すべて | すべてのEvent streams公開APIエンドポイント | 最大ペイロードサイズ: 1 MB |
クイックリファレンス
| タイプ | リソース | 説明 |
|---|---|---|
| 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秒間待機します。 この時間内に新しいメッセージが表示されると即座に返されます。それ以外の場合、APIは呼び出しがタイムアウトした後に空のリストを提供します。
POST /api/v1/topics/:topic_id/consumeURLパラメーター
| 名前 | タイプ | 説明 |
|---|---|---|
| topic_id | integer required | イベントトピックID。 |
ペイロード
| 名前 | タイプ | 説明 |
|---|---|---|
| after_message_id | string 任意 | メッセージID。 サービスは、指定されたIDのメッセージより後のすべてのメッセージを返します。 IDは、トピック内に存在するメッセージに対応している必要があります。 |
| since_time | string 任意 | RFC 3339形式のタイムスタンプ。 サービスは、指定されたタイムスタンプより後のすべてのメッセージを返します。 since_time値が未来の時刻である場合、現在時刻が使用されます。 |
| batch_size | integer optional | 返す最大バッチサイズ。 最大値は50です。 指定しない場合、50件のメッセージのバッチを返します。 |
| timeout_secs | integer optional | ロングポーリングの最大タイムアウト。 最大値は60です。 デフォルト値は0です。 0の場合、ロングポーリングは無効になります。 |
SINCE_TIMEパラメータの使用
トピックメッセージカーソルを制御するには、after_message_idを使用することをお勧めします。 since_timeは、最初のリクエスト(トピック全体をポーリングせずに特定のタイムスタンプからメッセージをポーリングする場合)、またはトピックからメッセージを再取得する必要がある場合にのみ使用してください。 特にバッチパブリッシュやロングポーリングと組み合わせてsince_timeを使用すると、メッセージの順序は保証されず、メッセージがスキップされる可能性があります。
サンプルリクエスト
curl -X POST "https://event-streams.workato.com/api/v1/topics/<id>/consume" \
-H 'Authorization: Bearer <api_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/publishURLパラメータ
| 名前 | タイプ | 説明 |
|---|---|---|
| topic_id | integer required | イベントトピックID。 |
ペイロード
| 名前 | タイプ | 説明 |
|---|---|---|
| JSON 必須 | トピックにパブリッシュするメッセージ。 メッセージはトピックスキーマに準拠している必要があります。 |
サンプルリクエスト
curl -X POST "https://event-streams.workato.com/api/v1/topics/<id>/publish" \
-H 'Authorization: Bearer <api_token>' \
--data '{"Name": "John", "Surname": "Doe"}'レスポンス
{
"message_id": "A1BRi"
}メッセージのバッチのパブリッシュ
メッセージのバッチをトピックにパブリッシュします。 メッセージはトピックスキーマに準拠している必要があります。
POST /api/v1/batch/topics/:topic_id/publishURLパラメータ
| 名前 | タイプ | 説明 |
|---|---|---|
| topic_id | integer required | イベントトピックID。 |
ペイロード
| 名前 | タイプ | 説明 |
|---|---|---|
| payloads | JSONの配列 必須 | トピックにパブリッシュするメッセージの配列。 メッセージはトピックスキーマに準拠している必要があります。 配列の最大サイズは100です。 |
サンプルリクエスト
curl -X POST "https://event-streams.workato.com/api/v1/topics/<id>/publish" \
-H 'Authorization: Bearer <api_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: