要求の例

Current version: 4.2

次の例では、Webhook エンドポイントで使用されるさまざまな JSON オブジェクトについて詳しく説明します。

Webhook の編集

Webhook の作成または更新に使用されるデータ。

名前目的
Label文字列Webhook の目的を説明する人間が判読できるラベル。
UriURIWeb 要求を行う URI。
Method文字列Web 要求を行うときに使用する HTTP メソッド。GET または POST である必要があります。
HeadersオブジェクトWeb 要求を行うときに送信するカスタム ヘッダー。一般的に認証に使用されます。Header には、文字列プロパティのみを含めることができます。
Body文字列Web 要求を行うときに投稿する本文。ExecutionModeOnEnd の場合にのみ入力できます。
BodyInclude文字列Webhook 要求の本文に含める JSON オブジェクト。ExecutionModeOnUpdate の場合にのみ入力できます。このフィールドは有効な JSON オブジェクトである必要があります。
CreatedBy文字列Webhook を作成したユーザーの名前。
ExecutionMode文字列Webhook の実行方法を決定します。OnEnd または OnUpdate である必要があります。

例:

RequestResponse

{
"label": "webhook 29",
"uri": "https://www.target-domain-of-the-webhook.com/hooks/edge-hook",
"method": "POST",
"headers": {
"x-header": "bar"
},
"body": "{\"rebuild\":\"true\"}",
"createdBy": "anco",
"executionMode": "OnEnd"
}

Webhook

Webhook を完全に説明する情報が含まれています。

名前目的
Id文字列この Webhook を識別するために使用される識別子。
TenantId文字列この Webhook が属するテナントの ID。
Label文字列Webhook の目的を説明する人間が判読できるラベル。
UriURIWeb 要求を行う URI。
Method文字列Web 要求を行うときに使用する HTTP メソッド。GET または POST である必要があります。
HeadersオブジェクトWeb 要求を行うときに送信するカスタム ヘッダー。一般的に認証に使用されます。Header には、文字列プロパティのみを含めることができます。
Body文字列Web 要求を行うときに投稿する本文。ExecutionModeOnEnd の場合にのみ入力できます。
BodyInclude文字列Webhook 要求の本文に含める JSON オブジェクト。ExecutionModeOnUpdate の場合にのみ入力できます。このフィールドは有効な JSON オブジェクトである必要があります。
CreatedBy文字列Webhook を作成したユーザーの名前。
CreatedDateTimeOffsetWebhook が作成されたときのタイムスタンプ。
ExecutionMode文字列Webhook の実行方法を決定します。OnEnd または OnUpdate である必要があります。

例:

RequestResponse

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

エンティティの更新

Webhook を実行する原因となった更新されたエンティティについて説明します。

名前目的
identifier文字列エンティティの識別子。
entity_definition文字列エンティティが使用するエンティティ定義。更新操作の場合にのみ入力されます。
operation文字列エンティティで実行される操作。update または delete である必要があります。

例:

RequestResponse

{
"identifier": "M.Setting.CleanerInterval",
"entity_definition": "M.Setting",
"operation": "update"
}

Webhook 要求

OnUpdate 実行モードを使用する Webhook エンドポイントに対して行われた要求の本文。

名前目的
invocation_idGUIDこの Webhook の呼び出しを識別します。複数の Webhook 要求にまたがる多数の更新を相互に関連付けるために使用されます。
updatesEntityUpdate の配列Webhook を実行する原因となった更新されたエンティティ。
continuesブール値さらに更新を送信し続けるための追加の要求があるかどうかを示します。これは、多くの更新があり、複数の要求に分割されている場合に発生します。

Webhook 定義に bodyInclude フィールドが含まれている場合、これは結果の JSON オブジェクトに挿入されます。

例:

RequestResponse

{
"invocation_id": "7734f16b-1e46-4321-a40e-522255d6c17a",
"updates": [
{
"identifier": "M.Setting.CleanerInterval",
"entity_definition": "M.Setting",
"operation": "update"
},
{
"identifier": "Content.PowerFromWithin",
"operation": "delete"
}
],
"continues": false
}

次の例では、Webhook 定義の bodyInclude フィールドに次のものが含まれています。

RequestResponse

{
"authorization": 132332,
"rebuild": true,
"department": "engineering"
}

JSON オブジェクトのすべてのプロパティが JSON 要求本文に追加されます。

RequestResponse

{
"authorization": 132332,
"rebuild": true,
"department": "engineering",
"invocation_id": "7734f16b-1e46-4321-a40e-522255d6c17a",
"updates": [
{
"identifier": "M.Setting.CleanerInterval",
"operation": "delete"
},
{
"identifier": "Content.PowerFromWithin",
"entity_definition": "M.Content",
"operation": "update"
}
],
"continues": false
}

OnUpdate の実行

送信する更新が多数ある場合、これらはバッチに分割され、複数の要求で送信されます。同じ呼び出し (トリガー) に対するすべての要求には、同じ invocation_id セットが含まれます。すべての要求の continues フィールドは、呼び出しの最後の要求を除き、true に設定されています。ダウンストリーム システムはこのフィールドを使用して、呼び出しに対する追加の要求があるかどうかを確認することができます。

例:

3 つの個別のエンティティの更新を検討します。最大バッチ サイズが 2 の場合、Webhook エンドポイントに送信される要求のペイロードは次のとおりです。

RequestResponse

{
"invocation_id": "8834f16b-1e46-4321-a40e-522255d6c17a",
"updates": [
{
"identifier": "M.Setting.CleanerInterval",
"entity_definition": "M.Setting",
"operation": "update"
},
{
"identifier": "Content.PowerFromWithin",
"entity_definition": "M.Content",
"operation": "update"
}
],
"continues": true
}

continues フィールドは trueです。これは別の要求が続くことを示しています。

RequestResponse

{
"invocation_id": "8834f16b-1e46-4321-a40e-522255d6c17a",
"updates": [
{
"identifier": "M.Setting.UpdateInterval",
"entity_definition": "M.Setting",
"operation": "update"
}
],
"continues": false
}

continues フィールドは false です。これはすべての更新が送信されたことを意味します。これら 2 つの要求は同じセットの論理変更に対するものであるため、invocation_id は最初の要求と同じです。

Do you have some feedback for us?

If you have suggestions for improving this article,