web-dev-qa-db-ja.com

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

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

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

したがって、彼らは基本的に同じことをしています。

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

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

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

11
Josip Ivic

それらの最初の主な違いは、ほとんどのAPIでリクエストがあり、その後にレスポンスがあることです。ウェブフックにリクエストは必要ありません。利用可能な場合にデータを送信するだけです。

シンプルなビュー:

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

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

簡単に言うと、APIはexample.comに情報を提供する場所であり、Webhookはexample.comに情報を提供する場所です。

さらに詳しく見る:

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

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

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

SaaSアプリケーションがなくても、APIまたはwebhookを持つことは困難です。ただし、webhookや(public)APIを使用しないSaaSアプリケーションを簡単に作成できます。同様に、SaaSアプリケーションの機能に応じて、webhook OR AP​​Iを使用することもできます。

13
knif3r

APIはあなたがそれを頼むと何かをしている一方で、Webhook特定の条件が一致した場合、独自の処理を行います。

つまり、簡単に言うと、APIはあなたが私たちに語る場所であり、Webhookは私たちがあなたに語る場所です。

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/ 経由

9
Pit

これを具体的な例で説明します:クレジットカード支払い。

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

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

Webhookは、APIのコールバックメカニズムです。基本的に、呼び出しているAPIと連動して非同期コールバック用のAPIをimplementします。

5

素人の言葉でのwebhookとAPIの違いの例を次に示します。

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

Webhook

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

API

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

違いはAPI呼び出しのようなデータを取得するためにトリガーが必要であるのに対し、webhookはトリガーなしで新しいデータが到着すると自動的に通知する。

2
Community

Apiは、既存のプラットフォームから任意の開発プラットフォームの特定の機能またはデータにアクセスするために使用される単純な小さなアプリケーションです。たとえば、Googleジオロケーションサービス(既に存在するプラットフォーム)をウェブサイト(開発プラットフォーム)で、システム全体を再構築して独自のサテライトをセットアップする代わりに、小さなApiを使用してGoogleからその機能にアクセスします。

一方、Webフックは、Apiを使用して要求した応答とデータが送信されるWebサイトまたはプラットフォームへの単純な戻りまたはフォールバックURLです。あなたが求める情報。

0
Abel Akponine