検索
特集/連載

「Webhook」と「API」は何が違う? 5つの視点でおさらいデータ連携の仕組みを解説【中編】

「Webhook」と「API」は、どちらもアプリケーション間でデータをやりとりする際に使われる仕組みだ。両者は何が違うのか。機能やコスト、セキュリティといった観点から解説する。

Share
Tweet
LINE
Hatena

関連キーワード

API | データ | データ通信


 アプリケーションやサービス間でデータをやりとりする際は、API(アプリケーションプログラミングインタフェース)やWebhook(複数のWebサービスを連携させる仕組み)を使用することが一般的だ。WebhookとAPIは機能的に類似しており、一部の用途では重なることもある。しかし、それぞれの仕組みや適用範囲には明確な違いがある。本稿は、機能やコスト、セキュリティなどの観点から、両者の違いを解説する。

「Webhook」と「API」は何が違う? 5つのポイントをおさらい

 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の使い分け方に焦点を当てて解説する。

TechTarget発 エンジニア虎の巻

米国Informa TechTargetの豊富な記事の中から、開発のノウハウや技術知識など、ITエンジニアの問題解決に役立つ情報を厳選してお届けします。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る