webhookとは何か?
Webhook(ウェブフック)とは、特定のイベントが発生した際に、アプリケーション間でデータを自動的に送信する仕組みです。HTTP プロトコルを使用して実装され、リアルタイムで通知を受け取る必要性があるアプリケーションやサービスに適しています。
→サーバ側から通知が自動的に届くような仕組み
webhookの仕組み
- 送信元のサービスでデータの追加などの「きっかけ」が発生する
- 「きっかけ」により、指定した「宛先(URL)」へのHTTP通信が発生する
- 指定した「宛先」へデータを送信できる
webhookの活用例
- GitHub のプロジェクト状況や PR のリクエスト通知を Slack などのコミュニケーションアプリで受信する。
- ToDoアプリにレコードを追加したときに、メールやチャットで通知を受け取る。
- 投稿管理アプリのレコードのステータスが「承認」になったとき、レコードの内容を SNS に投稿する。
webhookの注意点
- 悪意を持ったユーザーが不正なリクエストを送ることで、誤った情報を受け取ったり、悪意のある操作が行われる可能性がある
- ユーザーからのリクエストが暗号化や認証の手段で保護されていない場合、個人情報が漏洩するリスクもある
APIとの相違
webhook | API | |
---|---|---|
通信方式 | プル型 | プッシュ型 |
通信コスト | 低 | 高 |
トリガ | 自動的 | 能動的 |
方向 | 一方向 | 双方向 |
事前設定 | 通知先を設定 | なし |
セキュリティ | 認証機能なし | 認証機能あり |
以上