WebhookとAPIの違いは何ですか?


15

APIへのリクエストを行うプログラマーは、応答を受け取ります。たとえば、Web APIを使用してメールを送信する場合は、リクエストとともにメールの内容を渡します。すべてがうまくいくと、成功を宣言する応答が届きます。

Webhookを使用するには、サービスを提供する会社にURLを登録します。そのURLは、データを受け入れてデータを処理するアプリケーション内の場所です。場合によっては、データを受け取りたい状況をプロバイダーに伝えることができます。新しいものがあるときはいつでも、WebhookはそれをあなたのURLに送信します。

つまり、彼らは基本的に同じことをしています。

私の質問はこれです:webhookとapiの違いは何ですか?

WEBHOOK IS ____およびAPI IS ______という用語ではありません。

私は彼らが何であるか知っています。主な違いと、いつ使用するか、いつ使用するかに興味があります。

回答:


15

それらの最初の主な違いは、ほとんどのAPIで、リクエストの後にレスポンスが続くことです。Webhookにリクエストは必要ありません。データが利用可能になったときにデータを送信するだけです。

シンプルなビュー:

APIは、example.com上のデータへのインターフェースです。APIはサーバーからexample.comプラットフォームに使用され、アイテムの一覧表示、作成、編集、または削除に使用できます。

Webhookは、example.comで特定のイベントが発生したときにトリガーされる、example.comからサーバーへの自動呼び出しです。たとえば、タスクが完了し、それをリアルタイムで知りたい場合は、サンプルアカウントのEVENT.COMPLETED Webhookに登録したURLにPOSTリクエストを送信します。

つまり、一言で言えば、APIはexample.comのことを伝え、Webhooksはexample.comが伝えます。

より深く見る:

SaaSは概念です。クラウドに存在するソフトウェアの概念であり、クライアントは一般にブラウザーです。SaaSアプリケーションは、ユーザーに提供できる機能によって定義されます(たとえば、Salesforceは、顧客情報を保存するために使用できるデータベースを提供します)使用可能な機能は、アプリケーションの目的(CRM、Email Blaster、CMSなど)によって決まりますなど)。

APIは、SaaSアプリケーションを一般的な通信方法(ReST、SOAP、JSONなど)を介して他のアプリケーションと接続するための方法です。APIは別のAPIと直接通信することはできません。APIは、2つのAPI間のブリッジとして機能し、実行のスレッドを実行するコード化されたアプリケーションまたはミドルウェアで使用できます。たとえば、NetSuiteとSalesforceの両方にSOAP APIがありますが、通信するために、両方のシステムと対話し、SalesforceのAPIを介して新しい連絡先レコードをプルし、新しいレコードをNetSuiteにプッシュするように構成できるミドルウェアソフトウェアを使用します。 1時間ごとのAPIです。

Webhooksは、アプリケーション間の通信を可能にするSaaSアプリケーションのもう1つの通信プロトコルですが、HTTP POSTSを使用して実行スレッドを制御します。Webhookを使用すると、ミドルウェアを使用せずに、アプリケーションが互いに直接対話できます。たとえば、フォームをWuFooに送信するときに、別のサービスにWebhook HTTP POSTを開始し、フォーム送信からいくつかのフィールド値を渡すように設定できます。WebhookはAPIと組み合わせて使用​​することもできます。たとえば、Webhookが他のアプリケーションにID Xを記録するために起こったことを通知した後、そのアプリケーションはAPIを使用してサービスと通信し、新しいフィールド値を確認したり、ステータスを変更したりできます。レコード。

SaaSアプリケーションがないと、APIやwebhookを持つことは困難です。ただし、Webhookまたは(パブリック)APIを使用しないSaaSアプリケーションを簡単に作成できます。同様に、SaaSアプリケーションの機能に応じて、webhookまたはAPIの使用を選択できます。


ありがとう!私はあなたの答え(そしてもちろん質問!)を賛成するためだけにこのコミュニティに参加しました。
Kaushal28

11

APIは要求に応じて処理を実行しますが、Webhookは特定の基準に一致するときに独自に処理を実行します。

つまり、一言で言えば、APIはあなたが私たちに伝える場所であり、Webhooksは私たちがあなたに伝える場所です。

経由http://apidocs.teamwork.com/article/466-whats-the-difference-between-the-api-and-webhooks

新しいものがあるときはいつでも、WebhookはそれをあなたのURLに送信します。

https://sendgrid.com/blog/webhook-vs-api-whats-difference/経由


5

これを具体例で説明します:クレジットカード決済。

サイトでクレジットカードに請求する場合は、クレジットカードプロセッサでAPIを呼び出します。次に、クレジットカードプロセッサは、クレジットカードに課金し、そのAPI呼び出しに成功または失敗のステータスを返します。

クレジットカード処理業者は、後でこのトランザクションについてサイトを更新する何らかの方法を必要とする場合があります。たとえば、トランザクションは来週取り消される場合があります。あなたのクレジットカード処理業者はあなたにこれについてメールを送るだけかもしれません。それを処理する別の方法はwebhookです。あなたはあなたのクレジットカード処理業者にあなたのサイトのURLを伝え、彼らがあなたにデータを送って送ることができるようにします。トランザクションが取り消されると、Webフックをサポートするクレジットカードプロセッサが、提供されたURLでサイトにアクセスし、機械で読み取り可能な形式でデータを送信します。これを解析して、Webアプリケーションで自動的に処理することができます。

WebhookはAPIのコールバックメカニズムです。基本的には、呼び出すコールバックAPIと組み合わせて、非同期コールバック用のAPIを実装します。


「基本的に非同期コールバック用のAPIを実装します...」-それは「Webhook」ではないのですか?
MrWhite、

1
私はWebhookはあなたが実装するAPIであると言っています。APIを呼び出します。Webhookは、あなたが呼び出すように実装するAPIです。
スティーブンオスターミラー

2

一般的な用語でのWebhookとAPIの違いの例を次に示します。

あなたが何かをオンラインで注文し、配達は今日であるが、あなたは仕事中であるので、それが到着したらメイドにパッケージを受け取るように言ったとしましょう。目標は、パッケージがすでに到着した場合に通知を受ける必要があることです。これは何が起こるかです:

Webhook

  • パッケージが到着すると、メイドはすぐにあなたに電話して、パッケージがすでに到着したことを通知します。

API

  • パッケージはすでに到着しましたが、まだわかりません。それから、あなたはそれがすでに到着したかどうか尋ねるためにあなたがメイドだと電話しました、そして彼女はイエスと言います。

違いは、APIが、呼び出しのようにデータをフェッチするためにトリガーを必要とすることですが、Webhookは、トリガーを必要とせずに新しいデータが到着すると自動的に通知します。


0

APIは、例えば、単に既存のプラットフォームから任意の開発プラットフォームにおける特定の機能やデータへのゲインのアクセスに使用される小さなアプリケーションです:あなたはあなたのウェブサイト上のジオロケーションサービス(既存のプラットフォームを)googleの使いたい(開発しますプラットフォーム)、システム全体を再構築して独自の衛星をセットアップする代わりに、小さなAPIを使用してgoogleからその機能にアクセスします。

一方でウェブフックは単にリターンまたは応答して、使用して要求されたデータのウェブサイトやプラットフォームへのフォールバックURLであるAPIがに送信され、あなたが探している情報が収集されています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.