Webhook
うぇぶふっく
Webhook
一言でいうと
外部サービスでイベントが起きた瞬間に、自分のサーバーに通知してくれる仕組みのこと。
詳しい意味
Webhook は、外部サービスで何かイベント(ユーザー登録、決済成功、PRがマージされた等)が発生した瞬間に、外部サービス側から自分のサーバーに HTTP リクエストで通知してくれる仕組みです。自分から定期的に問い合わせる「ポーリング」と対比され、リアルタイム性と効率に優れます。Stripe(決済)、GitHub(PR/Issue)、Slack(メッセージ)など、多くのSaaSがWebhookを提供。受け取り側のエンドポイントは、署名検証(送信元が本物か確認)、冪等性(同じイベントが2回届いても1回として扱う)、ステータスコードを200で返す、を実装するのが鉄則です。
何に使うか
決済完了の通知を受け取って自社DBを更新するとき。GitHub のPR作成を Slack に通知するとき。外部システムの状態変化を即座に取り込むとき。
どんな時に出るか
「Webhookで連携」「Webhookエンドポイントを公開」「Webhookの署名を検証」といった場面で登場します。
具体例
- Stripe の Webhook を受けて決済成功時に自社DB の注文ステータスを更新している。
- Webhook の署名検証を入れていなかったため、不正リクエストで誤発火する脆弱性を修正した。
別名・略称
webhook(うぇぶふっく)Webhook(うぇぶふっく)
初心者向けメモ
宅配便の「不在時の置き配通知」のようなものです。配達員(外部サービス)が届けてくれた時に、こちらから「もう着いた?」と聞きに行かなくても、置き配されたら通知が飛んでくる。リアルタイム性と楽さが両立できます。