「Webhook」と「API」は、どちらもアプリケーション間でデータをやりとりする際に使われる仕組みだ。両者は何が違うのか。機能やコスト、セキュリティといった観点から解説する。
アプリケーションやサービス間でデータをやりとりする際は、API(アプリケーションプログラミングインタフェース)やWebhook(複数のWebサービスを連携させる仕組み)を使用することが一般的だ。WebhookとAPIは機能的に類似しており、一部の用途では重なることもある。しかし、それぞれの仕組みや適用範囲には明確な違いがある。本稿は、機能やコスト、セキュリティなどの観点から、両者の違いを解説する。
APIはWebhookと同様のタスクを実行できるものの、Webhookにはない機能も備えている。両者の主な違いは以下の通り。
Webhookはプッシュ型の通信を採用している。つまり、特定のイベントが発生した際に、あるアプリケーションから別のアプリケーションへデータを自動送信する仕組みだ。そのため、一方向の通知や更新に適している。
一方、APIはプル型の通信を採用している。つまり、クライアントがサーバにリクエストを送信し、必要な時にデータを取得する仕組みだ。そのため、必要なタイミングで情報を取得するようなケースに適している。
Webhookは特定のトリガーに基づいて定期的にデータを送信するが、ストリーミング(リアルタイムのデータ送信)には対応していない。
APIは、クライアントとサーバ間の通信チャネルを維持し、リアルタイムでデータをやりとりが可能だ。そのため、リアルタイム性が求められるチャットや動画配信などは、WebhookよりもAPIが適している。
基本的に、Webhookにはデータのフォーマットや内容を検査する機能がなく、セキュリティポリシーの適用が難しい。加えて、Webhookは外部アプリケーションが送信するデータを受け取る公開HTTP(Hypertext Transfer Protocol)エンドポイントを必要とする。公開HTTPエンドポイントとは、インターネットでHTTPによってアクセス可能な接続先を指す。Webhookを使うと、不正リクエストを大量に送り付けるDDoS(分散型サービス拒否)攻撃の標的となりやすい。
一方、APIは事前に認証を実施し、セキュリティを確保した上でデータをやりとりする。そのため、一般的にはAPIの方が、安全性が高いと言える。
Webhookは送信元からデータを送信するシンプルな仕組みであるため、開発は比較的容易だ。一方、APIはクライアントのリクエストを処理し、レスポンスを返すだけでなく、データの検査や変換、認証機能を組み込むことも可能だ。このようにAPIは機能を開発できる柔軟さがある反面、開発は複雑化しやすく、Webhookよりも多くの工数が掛かる傾向にある。
Webhookの構造はシンプルであるため運用コストは比較的低い。一方、APIは複雑な通信をサポートするためにメモリやCPUを多く消費するので、サーバやネットワークにかかるコストがかさみやすい。特に、クラウドサービスから外部へのデータ転送時に発生する「エグレス料金」が増加する傾向にある。
次回は、WebhookとAPIの使い分け方に焦点を当てて解説する。
米国Informa TechTargetの豊富な記事の中から、開発のノウハウや技術知識など、ITエンジニアの問題解決に役立つ情報を厳選してお届けします。
Copyright © ITmedia, Inc. All Rights Reserved.
お知らせ
米国TechTarget Inc.とInforma Techデジタル事業が業務提携したことが発表されました。TechTargetジャパンは従来どおり、アイティメディア(株)が運営を継続します。これからも日本企業のIT選定に役立つ情報を提供してまいります。
FacebookとInstagramの広告品質強化へ Metaが「ブロックリスト」対応を拡大
Metaは、広告掲載におけるサードパーティーのブロックリストのサポートを拡大し、従来のI...
イーロン・マスク氏 vs マーク・ザッカーバーグ氏 嫌われ度対決の行方は?
イーロン・マスク氏とマーク・ザッカーバーグ氏。時代の寵児である2人だが、必ずしも好意...
サードパーティーCookie廃止で“オワコン”SEOが再注目される理由
GoogleはWebブラウザ「Chrome」におけるサードパーティーCookie廃止を撤回しましたが、プ...