OpenAPI 3.1のWebhook定義
OpenAPI 3.1でWebhookペイロードとコールバックURLを定義。イベントタイプ、ペイロードスキーマ、配信ヘッダー、リトライポリシー、署名検証をイベント駆動APIのためにドキュメント化。
Schema Patterns
詳細な説明
OpenAPIでのWebhook
Webhookを使用すると、クライアントがポーリングする代わりに、APIが登録されたURLにイベントをプッシュできます。OpenAPI 3.1は専用の webhooks セクションを導入し、OpenAPI 3.0はパス操作内の callbacks を使用します。
OpenAPI 3.1 Webhooks
openapi: "3.1.0"
webhooks:
orderCreated:
post:
summary: 注文作成イベント
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/OrderEvent"
responses:
"200":
description: Webhook受信
orderShipped:
post:
summary: 注文出荷イベント
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ShipmentEvent"
responses:
"200":
description: 確認
Webhookセキュリティヘッダー
Webhook署名ヘッダーのドキュメント化:
webhooks:
payment:
post:
parameters:
- name: X-Webhook-Signature
in: header
required: true
schema:
type: string
description: リクエストボディのHMAC-SHA256署名
- name: X-Webhook-Timestamp
in: header
required: true
schema:
type: string
description: イベント送信時のUnixタイムスタンプ
リトライポリシーのドキュメント化
配信動作にdescriptionフィールドを使用:
webhooks:
payment:
post:
description: |
Webhook配信は指数バックオフで最大5回リトライ。
スケジュール:1分、5分、30分、2時間、24時間。
確認には2xxを返す。2xx以外はリトライをトリガー。
ユースケース
Webhookのドキュメントは、イベント駆動アーキテクチャ、決済プロセッサ(Stripe、PayPal)、CI/CDシステム(GitHub、GitLab)、状態変更を外部システムに通知するすべてのプラットフォームに不可欠です。明確なWebhookペイロードスキーマにより、コンシューマーが信頼性の高いイベントハンドラーを構築でき、署名のドキュメントによりWebhookの安全な検証が保証されます。