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/consume

URLパラメータ ​

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

ペイロード ​

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

USING SINCE_TIME PARAMETER

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

サンプルリクエスト ​

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

レスポンス ​

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

メッセージの公開 ​

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

POST https://YOUR_EVENT_STREAMS_DC/api/v1/topics/:topic_id/publish

URLパラメータ ​

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

ペイロード ​

名前タイプ説明
JSON
required
トピックに公開するメッセージ。メッセージはトピックスキーマに準拠している必要があります。

サンプルリクエスト ​

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

レスポンス ​

json
{
  "message_id": "A1BRi"
}

メッセージバッチの公開 ​

トピックにメッセージバッチを公開します。メッセージはトピックスキーマに準拠している必要があります。

POST https://YOUR_EVENT_STREAMS_DC/api/v1/batch/topics/:topic_id/publish

URLパラメータ ​

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

ペイロード ​

名前タイプ説明
payloadsArray of JSON
required
トピックに公開するメッセージの配列。メッセージはトピックスキーマに準拠している必要があります。配列サイズの最大値は100です。

サンプルリクエスト ​

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

レスポンス ​

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

最終更新日: