🪝
Webhook
イベント発生時のHTTPコールバック
Webhookは「逆方向API」とも呼ばれます。従来のAPIではクライアントがサーバーにリクエストしますが、Webhookではサーバーがイベント発生時にクライアントのエンドポイントに直接データを送信します。
構造ダイアグラム
事前登録段階
🖥️
自分のサーバー
コールバックURL提供
① URL登録
→
☁️
外部サービス
例: GitHub, Stripe
イベント発生時
🖥️
自分のサーバー
POST受信 + 処理
←
② HTTP POSTコールバック
⚡
イベント発生!
決済完了、コードプッシュなど
フロー説明
- 自分のサーバーのコールバックURLを外部サービスに事前登録
- 外部サービスでイベント発生時に登録済みURLへHTTP POST
- 自分のサーバーが受信してイベント処理
- ポーリングなしでリアルタイム通知受信可能
動作フロー
1
自サーバーのコールバックURLを外部サービスに登録
2
外部サービスでイベント発生(決済完了、コードプッシュなど)
3
外部サービスが登録されたURLにHTTP POSTリクエストを送信
4
自サーバーがリクエストを受信してイベントを処理
メリット
- ✓ リアルタイムイベント受信
- ✓ ポーリング不要(効率的)
- ✓ 実装が比較的シンプル
- ✓ 疎結合
デメリット
- ✗ 公開URLが必要
- ✗ 失敗時のリトライロジックが必要
- ✗ 順序保証が困難
- ✗ セキュリティ検証が必要(署名確認)
ユースケース
GitHub Webhook(コードプッシュ通知)
Stripe決済通知
Slackイベント購読
CI/CDパイプラインのトリガー