「Webhook」と「API」の違いとは? 共通点と相違点は何か:データ連携の仕組みを解説【前編】
アプリケーション間でデータをやりとりする際に使われる仕組みとして、APIやWebhookがある。それぞれの基本的な特徴をおさらいする。
アプリケーションやサービス間でデータをやりとりする際は、API(アプリケーションプログラミングインタフェース)やWebhook(複数のWebサービスを連携させる仕組み)を活用するのが一般的だ。一方で、WebhookとAPIはデータのやりとりの仕組みや用途が異なるため、適切な使い分けが求められる。Webhookが有効なケースもあれば、APIの方が適している場合もある。本連載は、両者の基本的な仕組みを整理し、それぞれの特徴や適切な使い分け方について解説する。
「Webhook」と「API」の違いとは
併せて読みたいお薦め記事
アプリケーション開発の関連記事
Webhookとは、特定のイベントが発生した際に、1つのアプリケーションから別のアプリケーションへデータをプッシュ(送信)する仕組みだ。イベント駆動型の通信手段の一つで、ソース(発信元)からエンドポイント(受信先)へ自動的にデータを転送する。
通常、Webhookは通信プロトコル「HTTP」(Hypertext Transfer Protocol)を用いてデータを送信する。この点は一般的なHTTPリクエストと類似するものの、Webhookの主な目的はイベント通知にある。そのためWebhookは、Webページのコンテンツ配信など、従来のHTTPリクエストが扱うようなタスクには適していない。
APIは、アプリケーションやサービス同士が相互に通信できるようにする仕組みだ。通常、クライアントがAPIサーバに情報をリクエストし、それに応じてサーバがデータを返すことで動作する。リクエストとレスポンスのデータは、APIの設計に準じた適切な形式で送受信される。これにより、クライアントとサーバがデータを正しく解釈できるようになる。
APIはさまざまなプロトコルを用いてデータを交換できる。中でもHTTPは一般的に使用されているが、扱えるデータの種類や形式に制限があるため、用途に応じてAPI専用のプロトコルを採用することもある。代表的なものとして、マークアップ言語「XML」を利用したWebサービス連携プロトコル「SOAP」(Simple Object Access Protocol)が挙げられる。
WebhookとAPIの共通点は?
WebhookとAPIの共通点としては、以下のような点が挙げられる。
- リアルタイムのデータ転送が可能
- 異なるアプリケーションやサービス間で、リアルタイムにデータをやりとりできる
- イベント駆動型の通信
- Webhookは、特定のイベントが発生した際にデータを送信する仕組みを採用している
- APIもイベント駆動型のデータ通信ができる
- データ形式の統一が必要
- 開発者は、データの送信元と受信先がデータを正しく解釈できるよう、適切な形式でデータを構造化する必要がある
- HTTPプロトコルを使用したデータ転送が可能
- WebhookとAPIのどちらも、HTTPを利用したデータ転送ができる
- APIの場合、HTTPはあくまで選択肢の一つに過ぎず、一般的にはSOAPなど他のプロトコルも利用する
次回は、WebhookとAPIの違いに焦点を当てて解説する。
TechTarget発 エンジニア虎の巻
米国Informa TechTargetの豊富な記事の中から、開発のノウハウや技術知識など、ITエンジニアの問題解決に役立つ情報を厳選してお届けします。
Copyright © ITmedia, Inc. All Rights Reserved.