Webhook完全に理解した

はじめに

バイトでLINE Messaging APIとかいじってたらこれが出てきて、最初納得いかなかったけど図にしたら簡単だったのでメモ

Webhock

f:id:gakki-uec15:20191007125138p:plain
Webhockと普通の場合の比較

Githubでcommitしたタイミングでslackに通知を送る場合を考えます。

普通の場合はGithubのプログラム内に「slackに通知を送る」という機能を持たせないといけないです。でも、こんな機能を全部つけていったらきりがないですよね?

ところでこの「commitしたタイミングでslackに通知を送る」ときにGithub側がする必要があるのは

① commitがあったタイミングを伝える

② commit内容を伝える

の二つです。この二つを伝えるだけなら、slackに通知を送るプログラムにPOSTで送ればよくない?というのがWebhookの考え方です。

つまり、

  1. commitがあったタイミングで通知送信プログラムのURLにcommit内容をPOSTを送信
  2. 通知送信プログラムはPOSTを受信するとそのPOSTの内容に基づいてslsckに通知を送信

という感じで、Github側が特にslack用のプログラムなど用意することなく通知が送れるようになるのです。

まとめ

要するにPOSTしてるだけ。完全に理解した。

参考文献

qiita.com