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は呼び出しがタイムアウトした後に空のリストを提供します。

shell
POST /api/v1/topics/:topic_id/consume

URLパラメーター

名前タイプ説明
topic_idinteger
required
イベントトピックID。

ペイロード

名前タイプ説明
after_message_idstring
任意
メッセージID。 サービスは、指定されたIDのメッセージより後のすべてのメッセージを返します。 IDは、トピック内に存在するメッセージに対応している必要があります。
since_timestring
任意
RFC 3339形式のタイムスタンプ。 サービスは、指定されたタイムスタンプより後のすべてのメッセージを返します。 since_time値が未来の時刻である場合、現在時刻が使用されます。
batch_sizeinteger
optional
返す最大バッチサイズ。 最大値は50です。 指定しない場合、50件のメッセージのバッチを返します。
timeout_secsinteger
optional
ロングポーリングの最大タイムアウト。 最大値は60です。 デフォルト値は0です。 0の場合、ロングポーリングは無効になります。

SINCE_TIMEパラメータの使用

トピックメッセージカーソルを制御するには、after_message_idを使用することをお勧めします。 since_timeは、最初のリクエスト(トピック全体をポーリングせずに特定のタイムスタンプからメッセージをポーリングする場合)、またはトピックからメッセージを再取得する必要がある場合にのみ使用してください。 特にバッチパブリッシュやロングポーリングと組み合わせてsince_timeを使用すると、メッセージの順序は保証されず、メッセージがスキップされる可能性があります。

サンプルリクエスト

shell
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"}'

レスポンス

json
{
    "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"
        }
    ]
}

メッセージのパブリッシュ

メッセージをトピックにパブリッシュします。 メッセージはトピックスキーマに準拠している必要があります。

shell
POST /api/v1/topics/:topic_id/publish

URLパラメータ

名前タイプ説明
topic_idinteger
required
イベントトピックID。

ペイロード

名前タイプ説明
JSON
必須
トピックにパブリッシュするメッセージ。 メッセージはトピックスキーマに準拠している必要があります。

サンプルリクエスト

shell
curl  -X POST "https://event-streams.workato.com/api/v1/topics/<id>/publish" \
      -H 'Authorization: Bearer <api_token>' \
      --data '{"Name": "John", "Surname": "Doe"}'

レスポンス

json
{
  "message_id": "A1BRi"
}

メッセージのバッチのパブリッシュ

メッセージのバッチをトピックにパブリッシュします。 メッセージはトピックスキーマに準拠している必要があります。

shell
POST /api/v1/batch/topics/:topic_id/publish

URLパラメータ

名前タイプ説明
topic_idinteger
required
イベントトピックID。

ペイロード

名前タイプ説明
payloadsJSONの配列
必須
トピックにパブリッシュするメッセージの配列。 メッセージはトピックスキーマに準拠している必要があります。 配列の最大サイズは100です。

サンプルリクエスト

shell
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"}]}'

レスポンス

json
{
  "is_partial_error": false,
  "message_ids": {
    "0": {
      "message_id": "A1DFi",
      "result": "success"
    },
    "1": {
      "message_id": "A1DL8",
      "result": "success"
    }
  }
}

Last updated: