WebAPIとWebhookについて
2023/01/10
今週のコラムを担当する大石です。
今回はWeb開発を行う上で何かと耳にする言葉「API」を中心に書いていこうと思います。
そもそもAPIとは
APIとは、あるプログラムが提供する機能を他のプログラムから利用できるようにするための仕組みのことを指します。
従来はOSなどのシステムがアプリケーションに向けて機能やサービスを提供する目的で使われていましたが、
近年ではそれに限らず、異なるプログラム間同士、自社サービスと外部サービスの連携などの場面でも使われています。
WebAPIとは
APIの中でも特に幅広く利用されているのが、Webを介してHTTP/HTTPSベースでやり取りする「WebAPI」です。
WebAPIは基本的には利用する側がリクエストデータを送信して、提供する側がレスポンスデータを返します。
こうした既定のやり取りによって利用者が必要とする情報を提供出来るのです。
例えば、ウェブサイト上にGoogleMapが埋め込まれているのを見たことはないでしょうか。
あれにはGoogleMapsAPIというGoogleが提供するWebAPIが利用されており、GoogleMapを開いた時と同様の機能がウェブサイト上で使えるようになっています。
他にもTwitterやInstagram、LINEなど多くの有名なWebサービス事業者がAPIを提供しています。
WebAPIのメリット
外部サービスの機能をそのまま活用できるので、一から機能を実装する場合と比べて格段にコストを抑えることができるうえ、その分のリソースを他に回すことで開発の効率化につながります。
また、それまでにプログラム同士の連携作業を人の手を介して行っていた場合は、APIを導入することでその部分が自動化されて生産性の向上が期待できます。
WebAPIのデメリット
APIを提供している企業がそのサービスの仕様変更や停止を行った場合、自社システムで利用している部分に不具合が発生するリスクが高まります。
同様に提供元のサーバーに障害が発生した場合なども一時的にサービスが利用できなくなる恐れがあります。
Webhookとは
Webhookはリアルタイムに情報提供を実現するための仕組みです。
Webサービス事業者はWebAPIの他にWebhookを提供していることがあります。
WebAPIが利用する側からリクエストデータを送信してレスポンスデータを受け取るのに対して、
Webhookにはリクエストのやり取りはなく、提供する側から利用する側に通知を送る一方的な通信を行います。
提供する側のアプリケーションで「○○が○○した時」などトリガーとなるイベントがいくつか用意されており、そのイベントが発生すると通知を送信します。
利用する側はイベントに対応した通知を受け取るためのHTTPメソッドを作成し、そのURLを提供する側に知らせておく必要があります。
まとめ
私は過去にWebAPIとWebhookどちらも利用したことがありますが、目的によって使い分ける必要があるなと感じました。
例えば、リアルタイムにAPI提供元のデータの変更を検知したい場合、
WebAPIで実装するには定期的に高い頻度でデータの問い合わせ(ポーリング)を行わなければいけませんが、
Webhookはイベント発生時に通知されるので、そのタイミングでデータを取得すればいいので効率的です。
WebAPIを活用することで自社サービスの利便性を向上させることが出来ますが、そこに依存しすぎるとリスクにもなりうる点は注意しておきたいですね。
----------------------------------------------------------------------
株式会社AQUARIZE
〒531-0072
大阪市北区豊崎3-6-8 TOビル404
電話番号 : 06-7777-2927
税理士の業務をツールで支援
税理士の業務に合ったシステム
税理士の方の作業を効率化
----------------------------------------------------------------------