1. ウェブフックオブジェクト

ウェブフックオブジェクト

日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

ウェブフックとは、サービスが他のアプリケーションにリアルタイムの情報を提供する方法です。Webhookは、公開操作が完了すると外部のコンシューマーアプリケーションのビルドをトリガーします。

このトピックでは、Edge Admin APIのwebhooksエンドポイント内で使用されるさまざまなJSONオブジェクトについて説明します。

失敗したウェブフックの自動無効化

Sitecoreはウェブフックの実行状況を定期的に監視し、10回連続失敗したウェブフックを自動的に無効化します。ウェブフックが30秒以内に応答しない場合、失敗とみなされます。

ウェブフックが実行されると、その結果はlastRunsプロパティに記録されます。実行が失敗した場合:

  1. システムは過去の実行結果を取得し、過去9回の実行も失敗していないかを確認します。
  2. もし存在しているなら、 disabled プロパティは trueに設定され、ウェブフックは無効化されます。
  3. lastRunsプロパティにウェブフックが無効化されたことを示すメッセージが追加されます
    webhook has failed the past 10 consecutive executions and is now disabled。

ウェブフックの故障原因を特定し、自社側で適切に処理できることを確認すると、/webhooks/{id}エンドポイントにPUTリクエストを送信し、disabledプロパティをfalseに設定して手動再起動できます。以下の例に示されています:

{ "tenantId": "kgo-tenant", "label": "kgo webhook", "uri": "https://www.sitecore.com/", "method": "GET", "headers": { "x-header": "foo" }, "disabled": false }

ウェブフック編集

CreateWebhookやUpdateWebhook管理者エンドポイントを呼び出す際にウェブフックを作成または更新するために使われるプロパティ。

名称

種類

概要

label

ストリング

ウェブフックの目的を説明しています。

uri

Uri

ウェブリクエストを出すためのURIです。

method

ストリング

ウェブリクエストを行う際に使うHTTPメソッド。 GET か POSTに違いない。

headers

目的

ウェブリクエストを出す際に送信するカスタムヘッダー。認証によく使われます。

body

ストリング

ウェブリクエストをする際に投稿する内容。 ExecutionMode が OnEndである場合にのみ人口が入ります。

bodyInclude

ストリング

ウェブフックリクエストの本文に含める追加のJSONオブジェクト。 ExecutionMode が OnUpdateである場合にのみ人口が入ります。このフィールドは有効なJSONオブジェクトでなければなりません。

createdBy

ストリング

ウェブフックを作成したユーザーの名前です。

executionMode

ストリング

ウェブフックの実行方法を決定します。以下のいずれかの選択肢でなければなりません: OnEnd、 OnUpdate。

例:

{ "label": "My new webhook", "uri": "https://www.mysite.com/hooks/edge-hook", "method": "POST", "headers": { "x-header": "bar" }, "body": "{\"rebuild\":\"true\"}", "createdBy": "anco", "executionMode": "OnEnd" }

ウェブフック

ウェブフックについて説明しています。

名称

種類

概要

id

ストリング

このウェブフックの識別子です。

tenantId

ストリング

このウェブフックが属するテナントの ID。

label

ストリング

ウェブフックの目的を説明しています。

uri

Uri

ウェブリクエストを出すためのURIです。

method

ストリング

ウェブリクエストを行う際に使うHTTPメソッド。 GET か POSTに違いない。

headers

目的

ウェブリクエストを出す際に送信するカスタムヘッダー。認証によく使われます。

body

ストリング

ウェブリクエストをする際に投稿する内容。 ExecutionMode が OnEndである場合にのみ人口が入ります。

bodyInclude

ストリング

ウェブフックリクエストの本文に含める追加のJSONオブジェクトです。 ExecutionMode が OnUpdateである場合にのみ人口を埋めることができます。このフィールドは有効なJSONオブジェクトでなければなりません。

createdBy

ストリング

ウェブフックを作成したユーザーの名前です。

created

DateTimeOffset

ウェブフックが作成されたタイムスタンプ。

executionMode

ストリング

ウェブフックの実行方法を決定します。以下のいずれかの選択肢でなければなりません: OnEnd、 OnUpdate。

lastRuns

オブジェクトの配列

ウェブフックの最新の実行結果。以下の表は lastRuns 対象を説明します。

lastRunsオブジェクト

lastRunsオブジェクトは以下のフィールドを含めることができます:

名称

種類

概要

timestamp

DateTimeOffset

実行ログが作成されたタイムスタンプ。

success

ブール

ウェブフックが成功裏に実行されたかどうかを示します。

message

ストリング

ウェブフックが失敗した場合、エラーメッセージが表示されます。

例:

{ "id": "5678", "tenantId": "acme-corp", "label": "webhook 29", "uri": "https://www.acme.com/hooks/edge-hook", "method": "POST", "headers": { "x-header": "bar" }, "body": "{"rebuild\":\"true\"}", "createdBy": "anco", "created": "2021-03-26T10:44

.6107312+00
", "executionMode": "OnEnd", "lastRuns": { "timestamp": "2024-05-16T10:10
.825Z", "success": true }, { "timestamp": "2024-05-30T09:50
.2134315+00
", "success": false, "message": "Internal service error" } , "disabled": false }

エンティティアップデート

更新されウェブフック実行を引き起こしたエンティティを記述します。

名称

種類

概要

identifier

ストリング

エンティティの識別子。

entity_definition

ストリング

エンティティの定義です。更新操作のためだけに人口が入っています。可能な値は以下の通りです:

  • Item
  • MediaItem
  • ItemTemplate
  • ItemTemplateField
  • LayoutData
  • SiteInfo
  • DictionaryEntry

operation

ストリング

実行される操作の種類: update または delete。

entity_culture

ストリング

エンティティの文化(言語)バージョンを更新します。

例:

{ "identifier": "B43D07BD61D5448F93238B6ACAD4F3C4", "entity_definition": "Item", "operation": "Update", "entity_culture": "en" }

WebHookRequest

OnUpdate実行モードを使用するウェブフックエンドポイントに対して行われるリクエストの本文。

名称

種類

概要

invocation_id

ガイド

ウェブフックの呼び出しを特定します。複数のウェブフックリクエストにまたがる大量の更新数に相関するために使われていました。

updates

配列 EntityUpdate

更新されウェブフック実行を引き起こしたエンティティたち。

continues

ブール

さらなるアップデート送信の要請があるかどうかを示します。これは、多数の更新があり、それが複数のリクエストに分散されているときに発生します。

フィールドが埋められた場合、このJSONオブジェクトはリクエストの本体に統合され、注入されるオブジェクトのプロパティが要求本体オブジェクトに取り入れられます。

例:

{ "invocation_id": "6a271d7b-92de-4d14-8002-8fc97a46c290", "updates": { "identifier": "B43D07BD61D5448F93238B6ACAD4F3C4", "entity_definition": "Item", "operation": "Update", "entity_culture": "en" }, { "identifier": "siteName", "entity_definition": "SiteInfo", "operation": "Update", "entity_culture": "all" }, { "identifier": "3CE9A090FB9B42BEB593F39BFCB1DE2B", "entity_definition": "Item", "operation": "Update", "entity_culture": "en" } , "continues": false }

この記事を改善するための提案がある場合は、 お知らせください!