技術ブログ移設しました click here!

APIとWebhookの違い

こんにちは、ともろう(@tomorrowSLog)です。

APIとWebhookの違いを調べたのでまとめます。

大きな違いは一点だけ抑えたら大丈夫そう。

目次
  1. APIとは
  2. Webhookとは
  3. APIとWebhookの簡単な違い

【python スクレイピング】requestsモジュールを使ってサイトタイトルを取得する

APIとは

APIとはアプリケーションプログラミングインタフェース(Application Programming Interface)の略称となっています。

wikipedia先生にその意味を聞いてみると、

APIとは、広義の意味ではソフトウェアコンポーネントが互いにやりとりするのに使用するインタフェースの仕様である。

参考: wikipedia

となっています。

全然わかりませんねー

APIをひとことでいうと

簡単にまとめるとAPIは、“異なるソフトウェアやアプリケーション同士を互いに会話させるために使用する、

人とテクノロジーの間にあるようなその機能と説明書”といった感じでしょうか。

少し視点を変えて説明すると、人が異なるソフトウェアやアプリケーションなどのテクノロジー同士を互いに会話させるために用いるもの、がAPIです。

ちなみにこのAPIは基本的に、説明書通りしっかり指示(リクエスト)を出してあげないとうまく動いてくれません。

APIは一般的にインターネットを用いて利用されることがほとんどなので、特にwebAPIをさすことも多いです。

ちなみにwebAPIとほぼ同義であるwebサービスをwikipedia先生に聞くとこんな感じ。

Webサービス(ウェブサービス)とは、HTTPなどのインターネット関連技術を応用して、SOAPと呼ばれるXML形式のプロトコルを用いメッセージの送受信を行う技術、またはそれを適用したサービス。

参考: wikipedia

APIが使われているもの

一番身近なAPIの使われているものは、facebookやtwitterなどを使ったアカウント認証があります。

fcebookやtwitterの系列ではないアプリケーションやサービスでも、fcebookやtwitterを使ってアカウント登録や認証ができる場合があります。

ここにはAPIが用いられることで、簡単にこの機能が実装されています。

またUberのアプリもgoogle mapのAPIや、メッセージをやり取りするAPIオンライン決済のAPIなどを用いて作られています。

Webhookとは

webohookとはサーバー上である特定のイベントが発生した時に、サーバー側からあなた(クライアント)側に通知してくれるようなシステムのことを指します。

要求(リクエスト)なしに、特定の条件のもと動くAPIのようなものです。

webhookが使われているもの

あるシステムで何らかのエラーが起こった時に、メールでメンションしたい時。

SNSで新しいメッセージが送られた時や、あるサイトで新しいブログ記事が公開された時にメンションしたいような場合。

こういった常には変わらないけど、定期的に更新されるような簡単な情報のやり取りにwebhookは使われます。

APIとWebhookの違い

APIはリクエストをした際に何らかの反応を返してくれますが、

Webhookは事前に決められた基準を満たした際に何らかの反応を返してくれます。

もう少し具体的に考えていきましょう。

例えばあなたが、あるサーバー上のデータが更新されたのを知りたいとします。

APIの場合は、更新されたかということをなんどもAPIに指示を与え確認させる必要があります。更新されるまでなんども。

しかしWebhookの場合は最初に「更新されたら教えてね」という指示を与えておきます。すると更新される度に「更新があるよ!」と教えてくれます。

スマホアプリの更新通知にも例えられるかもしれません。

通知をオンにしている場合は、webhookを使っているような状態です。こちらからアプリを確認せずとも、更新があれば通知をしてくれます。

通知をオフにしている場合は、APIを使っているような状態。いちいちアプリを起動しなければ更新を知ることはできません。

まとめ

webhookとAPIの違いが気になったので調べてみました。

いろんな仕組みがわかっていくと楽しいですね。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です