現在、企業では Webhook が注目を浴びています。Webhook が注目を浴びる理由は社会の DX化が進むにつれ Web アプリケーションの増加や働き方の改革はもちろん、より良い顧客体験をアプリ上で提供するには、 Webhook が欠かせないからです。
この記事では、Webhook(ウェブフック)の仕組みや使い方、APIとの違いや CircleCI が提供する Webhook の対応サービスをご紹介します。
目次
Webhook(ウェブフック)とは?
Webhookとは、Web アプリケーションやサービスなどの更新情報を他のアプリケーションへ特定のイベント等が発生した際にリアルタイムで HTTP プロトコルを使用して通知するシステムです。また、日本語の読み方は「ウェブフック」です。
Webhook の仕組み
Webhook は HTTP プロトコルを通常使用して実装されます。一般的にある特定の URL に POST リクエストとして送信することで、通知先のアプリや Web サイト等に自動的に通知される仕組みとなっています。また、通知先のアプリケーションなどは、リクエストを受信して、リクエスト内に含まれるデータ等を処理します。
Webhook は以下の仕組みで動作します。
- Webhook の受け取り先 (アプリ)が、エンドポイント(URL)を公開
- Webhook 発行元 サービス・アプリケーションは、特定のイベントが発生した際に エンドポイントに POST リクエストして送信
- Webhook 受け取り側 (アプリケーション) は、POSTされたデータをもとに処理を行う
CircleCI Webhook
当社、CircleCI でも Webhook を提供しており、Airtable などのツールと連携し、完了したジョブなどのデータを集約したりジョブのステータスを社内の通知システムに警告として送信することができ、開発パイプラインの柔軟性を実現させます。
Webhookの実装方法はこちらのドキュメントをご覧ください。
CircleCI Webhook は以下のような目的でご活用いただけます。
- ダッシュボードでジョブとワークフローの分析と可視化
- Airtable を活用してデータの可視化と取得
- ジョブ状況のアラートの送信
- 自動化プラグインとツールの作成
- API の活用でワークフローの再実行
Webhook でできること
Webhook を使用すると、Slack などのコミュニケーションアプリ上で GitHub のプロジェクト状況や PR のリクエスト通知、プロジェクト全体の変化、コードのレビューなどのリクエスト通知を受信することができ、ひとつのプラットフォーム上でプロジェクト状況の確認が手間なく行えます。他にも Webhook には、データの同期やイベントを元にソフトウェアやアプリケーションの機能をカスタマイズすることができます。
また、Slack や Zapier などの Webhook 対応サービスを利用して、Twitter などの通知を自動的に Slack チャンネルなどに通知することも可能で、ユーザーのフィードバックなどが全て Slack、ChatWork、その他のコミュニケーションアプリケーションで確認することができます。
API と Webhook の決定的な違い
API (Application Programming Interface) と Webhook の主な違いは、API はデータを引き出す際や修正する際に手動で定期的に依頼する必要がありますが、Webhook は、特定のイベントに応じて、他のアプリケーションからのリクエスト無しに、自動的にデータを送信でき、API に比べて通信コストが低いことです。
また、API は、クライアントのデータの要求先です。クライアントは、データがさらに必要な場合、またはデータの更新の有無を確認する必要がある場合に、別のリクエストを作成します。Webhook では、サービス (クライアント) を Webhook のエンドポイントとして設定し、このエンドポイントを別のサービスに提供することになります。
Webhook はリアルタイムで通知を受け取る必要性があるアプリケーションやサービスに適しています。一方 API は、定期的に情報を受け取る場合や、処理を行う場合に最適です。
Webhook に対応しているサービス
現在、Webhook に対応したサービスは数多く存在しており、Slack に限らず Atlassian が提供する Jira、Dropbox、LINE、PayPay、Trello、 Zoom、Google Drive など多様なサービスが Webhook に対応しています。
まとめ
Webhook は色々な場面で使用することができるので、開発向けアプリだけではなく、コミュニケーションなどのリアルタイム通知が必要なアプリや決済サービス、株価アラートにも最適です。また、Webhook を活用することで企業にも多様な利点があり、セキリュティ面や信頼との提供を向上することができます。
アプリの開発を検討されている方々は、是非 Webhook をご活用ください。