PUBLIC
WEBウェブフック6 MIN READ

TERM 038

Webhook

イベントが起きたら、HTTPで相手へ知らせる

Webhookは、あるシステムでイベントが発生したとき、登録されたURLへHTTPリクエストを送る通知方式です。受け手が定期的に問い合わせるPollingを減らせます。

01EVENT出来事が発生
02POST登録URLへ送信
03VERIFY検証して受理
OVERVIEW

イベント発生時に別のシステムへHTTPで通知する仕組みの全体像。

CONTENTSこの記事の目次

QUICK OVERVIEW

30秒でつかむ

01ENDPOINT

受信URL

HTTPSで公開し、短時間で受理結果を返します。

02SIGNATURE

送信元の検証

共有Secretなどによる署名を生Bodyから検証します。

03EVENT ID

重複の識別

処理済みIDを記録し、同じ通知の再実行を防ぎます。

01 — DEFINITION

Webhookとは
何か

Webhookは、あるシステムでイベントが発生したとき、登録されたURLへHTTPリクエストを送る通知方式です。受け手が定期的に問い合わせるPollingを減らせます。

02 — HOW IT WORKS

仕組みを
3段階で見る

細部へ入る前に、入力から結果までの役割を順番に捉えます。

INPUTPROCESSOUTPUT
01EVENT

出来事が発生

支払完了やPushなど、通知対象の状態変化が起きる。

02POST

登録URLへ送信

イベントIDと内容をHTTP Requestとして届ける。

03VERIFY

検証して受理

署名と重複を確認し、すぐ成功応答を返す。

PROCESS

Webhookを理解するときの、最小の処理単位です。

03 — ESSENTIALS

押さえるべき
3つの要点

名前だけでなく、この3点の関係まで理解すると実装へつなげやすくなります。

01ENDPOINT

受信URL

HTTPSで公開し、短時間で受理結果を返します。

02SIGNATURE

送信元の検証

共有Secretなどによる署名を生Bodyから検証します。

03EVENT ID

重複の識別

処理済みIDを記録し、同じ通知の再実行を防ぎます。

04 — REAL WORLD EXAMPLE

決済完了を注文へ反映する

決済サービスが非同期で支払結果を確定します。

SCENARIO / WEBHOOKSTEP BY STEP
  1. 01

    payment.succeededを受信する

  2. 02

    署名とイベントIDを検証する

  3. 03

    Queueへ渡して注文状態を一度だけ更新する

RESULT決済サービスへ何度も問い合わせず、確定イベントを起点に後続処理を進められます。

05 — WATCH OUT

理解するときの
注意点

便利な仕組みほど、守備範囲と失敗の前提を明確にします。

01

受信したBodyを先に加工しない

署名方式によっては生のRequest Bodyそのものが検証対象です。

02

重い処理を同期で行わない

まず受理してQueueへ渡し、送信側のTimeoutと再送を減らします。

IN ONE SENTENCE

Webhookとは?

イベント発生時に別のシステムへHTTPで通知する仕組み

KEEP EXPLORING

WEBHTTP掲載中CLOUDMessage Queue掲載中CLOUDPub / Sub掲載中