🪝

Webhook

イベント発生時のHTTPコールバック

Webhookは「逆方向API」とも呼ばれます。従来のAPIではクライアントがサーバーにリクエストしますが、Webhookではサーバーがイベント発生時にクライアントのエンドポイントに直接データを送信します。

構造ダイアグラム

事前登録段階
🖥️
自分のサーバー
コールバックURL提供
① URL登録
☁️
外部サービス
例: GitHub, Stripe
イベント発生時
🖥️
自分のサーバー
POST受信 + 処理
② HTTP POSTコールバック
イベント発生!
決済完了、コードプッシュなど
フロー説明
  1. 自分のサーバーのコールバックURLを外部サービスに事前登録
  2. 外部サービスでイベント発生時に登録済みURLへHTTP POST
  3. 自分のサーバーが受信してイベント処理
  4. ポーリングなしでリアルタイム通知受信可能

動作フロー

1

自サーバーのコールバックURLを外部サービスに登録

2

外部サービスでイベント発生(決済完了、コードプッシュなど)

3

外部サービスが登録されたURLにHTTP POSTリクエストを送信

4

自サーバーがリクエストを受信してイベントを処理

メリット

  • リアルタイムイベント受信
  • ポーリング不要(効率的)
  • 実装が比較的シンプル
  • 疎結合

デメリット

  • 公開URLが必要
  • 失敗時のリトライロジックが必要
  • 順序保証が困難
  • セキュリティ検証が必要(署名確認)

ユースケース

GitHub Webhook(コードプッシュ通知) Stripe決済通知 Slackイベント購読 CI/CDパイプラインのトリガー