Event streamsパブリックAPI
Event streamsパブリックAPIは、イベントトピックからメッセージをパブリッシュおよび消費するためのエンドポイントを提供します。このAPIは、イベントトピックを管理できるEvent streams Developer APIとは別のものです。
トピック内の各メッセージには、オフセットとして使用できるIDが含まれています。これらのエンドポイントを使用するには、メッセージIDまたは最終メッセージタイムスタンプのいずれかを保存する必要があります。
詳細については、ご利用のデータセンターのベースURLにある/api/v1/openapi.jsonのOpenAPI仕様を参照してください。
ベースURL
Event streamsパブリックAPIのベースURLは、Workatoアカウントがホストされているデータセンターによって異なります。これらのURLは、メッセージのパブリッシュおよび消費用エンドポイントにのみ適用されます。
Workato Enterpriseのお客様
- 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 - UKデータセンター:
https://event-streams.uk.workato.com
Self-service(Workato Free、Workato Pro、またはDeveloper Sandbox)ユーザー
- セルフサービスデータセンター:
https://event-streams.trial.workato.com
VIRTUAL PRIVATE WORKATO (VPW)のお客様
このページでは、すべてのWorkatoユーザー向けの一般的なガイダンスを提供します。 Virtual Private Workato (VPW)のお客様は、お客様のインスタンスに固有の詳細な設定ガイダンスについて、プライベートドキュメントを参照してください。
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 public APIリソースには次のペイロードクォータが適用されます。
| タイプ | リソース | クォータ |
|---|---|---|
| すべて | すべてのEvent streams公開APIエンドポイント | 最大ペイロードサイズ: 10 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件のメッセージに制限されています。
バッチサイズは上限値
batch_sizeは、レスポンスで返されるメッセージ数の上限を設定します。 Workatoは各バッチの合計ペイロードも50 MBに制限するため、個々のペイロードが大きい場合はレスポンスに含まれるメッセージ数がbatch_sizeより少なくなることがあります。 Workatoは残りのメッセージを後続のリクエストで返します。リクエストおよびレスポンスの形式は変わりません。
timeout_secsパラメータを設定することで、ロングポーリングモードを有効にできます。このモードでは、APIは利用可能なメッセージを即座に返します。メッセージが存在しない場合、APIは最大timeout_secs秒間待機します。この時間内に新しいメッセージが到着した場合は即座に返され、それ以外の場合は、呼び出しがタイムアウトした時点で空のリストが返されます。
POST https://YOUR_EVENT_STREAMS_DC/api/v1/topics/:topic_id/consumeURLパラメータ
| 名前 | タイプ | 説明 |
|---|---|---|
| topic_id | integer required | EventトピックID。 |
ペイロード
| 名前 | タイプ | 説明 |
|---|---|---|
| after_message_id | string optional | メッセージID。サービスは、指定されたIDのメッセージより後のすべてのメッセージを返します。 IDは、トピック内に存在するメッセージを参照している必要があります。 |
| since_time | string optional | RFC 3339形式のタイムスタンプ。サービスは、指定されたタイムスタンプより後のすべてのメッセージを返します。 since_timeの値が未来の時刻である場合は、現在時刻が使用されます。 |
| batch_size | integer optional | 返すバッチサイズの上限。最大値は50です。指定されていない場合は50件のメッセージを含むバッチを返します。個々のペイロードが大きい場合、Workatoはbatch_sizeより少ないメッセージ数を返す場合があります。 |
| timeout_secs | integer optional | ロングポーリングの最大タイムアウト値。最大値は60です。デフォルト値は0です。 0の場合、ロングポーリングは無効になります。 |
USING SINCE_TIME PARAMETER
トピックメッセージカーソルの制御には、after_message_idを使用することを推奨します。 since_timeは、最初のリクエスト(トピック全体をポーリングせずに特定のタイムスタンプ以降のメッセージをポーリングするため)か、トピックからメッセージを再取得する必要がある場合にのみ使用してください。 since_timeを使用すると、特にバッチ公開やロングポーリングと組み合わせた場合、メッセージ順序が保証されず、メッセージが抜け落ちる可能性があります。
サンプルリクエスト
curl -X POST "https://YOUR_EVENT_STREAMS_DC/api/v1/topics/:topic_id/consume" \
-H 'Authorization: Bearer <api_token>' \
-H 'Content-Type: application/json' \
--data '{"after_message_id": ":after_message_id"}'レスポンス
{
"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 https://YOUR_EVENT_STREAMS_DC/api/v1/topics/:topic_id/publishURLパラメータ
| 名前 | タイプ | 説明 |
|---|---|---|
| topic_id | integer required | EventトピックID。 |
ペイロード
| 名前 | タイプ | 説明 |
|---|---|---|
| JSON required | トピックに公開するメッセージ。メッセージはトピックスキーマに準拠している必要があります。 |
サンプルリクエスト
curl -X POST "https://YOUR_EVENT_STREAMS_DC/api/v1/topics/:topic_id/publish" \
-H 'Authorization: Bearer <api_token>' \
--data '{":field_name_1": ":field_value_1", ":field_name_2": ":field_value_2"}'レスポンス
{
"message_id": "A1BRi"
}メッセージバッチの公開
トピックにメッセージバッチを公開します。メッセージはトピックスキーマに準拠している必要があります。
POST https://YOUR_EVENT_STREAMS_DC/api/v1/batch/topics/:topic_id/publishURLパラメータ
| 名前 | タイプ | 説明 |
|---|---|---|
| topic_id | integer required | EventトピックID。 |
ペイロード
| 名前 | タイプ | 説明 |
|---|---|---|
| payloads | Array of JSON required | トピックに公開するメッセージの配列。メッセージはトピックスキーマに準拠している必要があります。配列サイズの最大値は100です。 |
サンプルリクエスト
curl -X POST "https://YOUR_EVENT_STREAMS_DC/api/v1/batch/topics/:topic_id/publish" \
-H 'Authorization: Bearer <api_token>' \
--data '{"payloads":[{":field_name_1": ":field_value_1a", ":field_name_2": ":field_value_2a"},
{":field_name_1": ":field_value_1b", ":field_name_2": ":field_value_2b"}]}'レスポンス
{
"is_partial_error": false,
"message_ids": {
"0": {
"message_id": "A1DFi",
"result": "success"
},
"1": {
"message_id": "A1DL8",
"result": "success"
}
}
}最終更新日: