Webhookとは?APIとの違いや対応サービスについて
はじめに
今までWebhookとAPIを利用したことはありましたが、私自身その違いについてそこまで意識していなかったため、改めて違いについて学びましたので、シェアしたいと思います。また、Webhookに対応したサービスについてもいくつかご紹介いたします。
Webhookとは
Webhookとはサーバー上である特定のイベントが発生した時に、サーバー側からクライアント側に通知するシステムのことで、イベントは自分で設定でき、イベントトリガーと呼ぶこともあります。設定した条件のイベントが発生しない限り、Webhookは通知されないことになります。
Webhookはどのように使われるかというと、例えば、お気に入りに登録したブログが記事を更新した際にSNSで通知するようにしたり、重要なメールを拾って通知するようにしたりといった使い方ができます。他にも数多くの使い方があるので、のちほど『Webhookに対応したサービス』でご紹介します。
APIとは
APIとはApplication Programming Interfaceの略でインターフェイスとは何かと何かを繋ぐという意味があり、「アプリケーションとプログラムを繋ぐ」という意味になります。APIはアプリケーションなどの一部を公開することで、別のアプリケーションと機能を共有できる仕組みです。
たとえば、USBは外部のデバイスとPCを繋ぐインターフェースですが、APIはソフトウェアやアプリケーション同士を繋げます。「APIを公開する」と言ったことを聞くと思いますが、要するにアプリケーションにAPIという外部とやりとりする窓口を作り、別のアプリケーションと連携できる状態にする、ということです。
このAPIは普段、私達の日常でも非常に多くの場面で取り入れられています。ネット通販する際にサイトにアカウント情報を入力してログインしますが、その際に「Facebookアカウントでログインする」や「Twitterアカウントでログインする」「Googleアカウントでログインする」といった表示が出ているをの見たことがあると思います。これがまさしくAPIです。他にも決済時に、サイト独自の決済ではなく、Amazonの決済サービスを利用していたりする場合もAPIが使われています。
WebhookとAPIの違い
簡単に説明するとAPIはこちら側からリクエストすると、レスポンスしてくれますが、Webhookはリクエストしなくてもレスポンスしてくれます。しかし、予め設定した条件を満たした場合に限ります。この点がWebhookとAPIの違いです。
たとえば、お気に入りのブログの記事が更新されたとすると、APIの場合はこちら側からリクエストをしないとレスポンスしてくれませんが、Webhookの場合は「更新されたら通知する」という設定をしておきます。そのため、更新されるたびに通知が来るようになります。
Webhookに対応したサービス
ではWebhookに対応したサービスをいくつかご紹介します。
- Campaign Monitor
- Slack
- ChatWork
- LINE
- GitHub
- Trello
- Shopify
- PayPay
- PayPal
- Dropbox
- Evernote
- Zoom
など他にもまだ数多くのサービスがあります。ここに紹介したものは、マーケティング系や開発系、Eコマースの決済、ストレージなど多岐に渡ります。有名なサービスのほとんどは対応していることになります。
おわりに
Webhookで連携することで開発のスピードやサービスの提供スピードがはやくなるだけではありません。特に決済サービスに外部のアプリケーションを連携することで、顧客にセキュリティ面で安心と信頼を提供でき、売り上げアップにも繋がりやすくなるメリットもあります。個人的にはAmazonユーザーなので、他のショッピングサイトで買い物をする際にも、Amazon決済があればそれを利用します。もしなければ購入しないこともあります。それぐらい日頃よく利用している決済サービスだからこそ安心できるのです。これと同じことは他のサービスでも言えるでしょう。このサービスとこのサービスが連携していたら絶対に使うのに・・・といったことが往々にしてあります。と、APIとWebhookがごっちゃになってしまったので、改めて最後におさらいをしておきます。
Webhookは設定した条件のイベントが発生しない限り、通知されません。一方、APIはこちら側からリクエストをしない限り、レスポンスを返さない仕組みになっています。難しく考えずにこれだけ理解しておけば問題ないでしょう。Webhookは設定した条件にフックしたら通知され、APIはリクエストしてから通知します。APIとWebhookの違いを理解できたところで、これからはどんどん活用していきましょう。