Was ist der Unterschied zwischen einem Webhook und einer API?

14

Programmierer, die eine Anfrage an eine API stellen , erhalten dann eine Antwort. Wenn Sie beispielsweise eine Web-API zum Senden einer E-Mail verwenden, übergeben Sie den E-Mail-Inhalt mit der Anforderung. Wenn alles gut geht, erhalten Sie eine Antwort, die den Erfolg erklärt.

Um einen Webhook zu verwenden , registrieren Sie eine URL bei dem Unternehmen, das den Dienst bereitstellt. Diese URL ist ein Ort in Ihrer Anwendung, der die Daten akzeptiert und etwas damit macht. In einigen Fällen können Sie dem Anbieter mitteilen, in welchen Situationen Sie Daten empfangen möchten. Immer wenn es etwas Neues gibt, sendet der Webhook es an Ihre URL.

Sie machen also im Grunde das Gleiche.

Meine Frage lautet: Was ist der Unterschied zwischen Webhook und API?

Nicht in den Begriffen WEBHOOK IS ____ und API IS ______.

Ich weiß was sie sind. Ich interessiere mich für wichtige Unterschiede und wann ich einen verwenden soll und wann ich einen anderen verwenden soll.

Josip Ivic
quelle

Antworten:

14

Der erste und Hauptunterschied zwischen ihnen besteht darin, dass bei den meisten APIs eine Anforderung gefolgt von einer Antwort vorliegt. Für einen Webhook ist keine Anforderung erforderlich. Er sendet die Daten nur, wenn sie verfügbar sind.

Einfache Ansicht:

Die API ist eine Schnittstelle zu Ihren Daten auf example.com. Die API wird von Ihrem Server zur Plattform example.com verwendet und kann zum Auflisten, Erstellen, Bearbeiten oder Löschen von Elementen verwendet werden.

Webhooks sind automatisierte Aufrufe von example.com an Ihren Server, die ausgelöst werden, wenn in example.com ein bestimmtes Ereignis eintritt. Wenn beispielsweise eine Aufgabe abgeschlossen ist und Sie dies in Echtzeit wissen möchten, senden wir eine POST-Anfrage an die URL, die Sie für den EVENT.COMPLETED-Webhook in Ihrem Beispielkonto registriert haben.

Kurz gesagt: In der API erzählen Sie example.com Dinge, und in Webhooks sagt example.com Ihnen Dinge.

Schauen Sie genauer hin:

SaaS ist ein Konzept - die Idee von Software, die in der Cloud und im Client vorhanden ist, ist im Allgemeinen ein Browser. Eine SaaS-Anwendung wird durch die Funktionen definiert, die sie einem Benutzer bereitstellen kann (z. B. Salesforce stellt eine Datenbank bereit, in der Kundeninformationen gespeichert werden können). Die verfügbaren Funktionen werden durch den Zweck der Anwendung bestimmt (z. B. CRM, E-Mail-Blaster, CMS) , etc.).

Eine API ist eine Möglichkeit für SaaS-Anwendungen, über eine gemeinsame Kommunikationsmethode (ReST, SOAP, JSON usw.) mit anderen Anwendungen verbunden zu werden. Eine API kann nicht direkt mit einer anderen API sprechen. Eine API kann von einer codierten Anwendung oder Middleware verwendet werden, die als Brücke zwischen zwei APIs fungiert und den Ausführungsthread ausführt. Beispiel: Sowohl NetSuite als auch Salesforce verfügen über eine SOAP-API, aber für die Kommunikation möchten Sie Middleware-Software verwenden, die mit beiden Systemen interagieren und so konfiguriert werden kann, dass neue Kontaktdatensätze über die Salesforce-API abgerufen und neue Datensätze an NetSuite übertragen werden Es ist API jede Stunde.

Webhooks ist ein weiteres Kommunikationsprotokoll für SaaS-Anwendungen, das die Kommunikation zwischen Anwendungen ermöglicht, jedoch einfach HTTP-POSTS zur Steuerung des Ausführungsthreads verwendet. Mit Webhooks kann eine Anwendung direkt miteinander sprechen, ohne Middleware zu verwenden. Beispiel: Wenn Sie ein Formular an WuFoo senden, kann es so eingerichtet werden, dass ein Webhooks-HTTP-POST an einen anderen Dienst initiiert und einige Feldwerte aus der Formularübermittlung übergeben werden. Webhooks können auch in Verbindung mit einer API verwendet werden. Wenn der Webhook beispielsweise der anderen Anwendung mitteilt, dass etwas passiert ist, um ID X aufzuzeichnen, kann diese Anwendung eine API verwenden, um mit dem Dienst zu kommunizieren, um die neuen Feldwerte zu überprüfen oder den Status von zu ändern ein Rekord.

Es ist schwierig, eine API oder Webhooks ohne eine SaaS-Anwendung zu haben. Sie können jedoch problemlos eine SaaS-Anwendung verwenden, die keine Webhooks oder eine (öffentliche) API verwendet. Abhängig von den Funktionen Ihrer SaaS-Anwendung können Sie auch Webhooks ODER eine API verwenden.

knif3r
quelle
11

API erledigt Dinge, wenn Sie dazu aufgefordert werden, während Webhook Dinge selbst erledigt, wenn bestimmte Kriterien übereinstimmen.

Kurz gesagt: In der API erzählen Sie uns Dinge, und in Webhooks erzählen wir Ihnen Dinge.

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

Immer wenn es etwas Neues gibt, sendet der Webhook es an Ihre URL.

über https://sendgrid.com/blog/webhook-vs-api-whats-difference/

Grube
quelle
5

Ich werde dies anhand eines konkreten Beispiels veranschaulichen: Kreditkartenzahlungen.

Wenn Ihre Site eine Kreditkarte belasten möchte, rufen Sie eine API bei Ihrem Kreditkartenprozessor auf. Der Kreditkartenprozessor belastet dann die Kreditkarte und gibt diesem API-Aufruf einen Erfolgs- oder Fehlerstatus zurück.

Der Kreditkartenprozessor benötigt möglicherweise eine Möglichkeit, Ihre Website später über diese Transaktion zu aktualisieren. Beispielsweise kann die Transaktion nächste Woche rückgängig gemacht werden. Ihr Kreditkartenverarbeiter könnte Ihnen einfach eine E-Mail darüber senden. Eine andere Möglichkeit, damit umzugehen, sind Webhooks . Sie teilen Ihrem Kreditkartenverarbeiter eine URL auf Ihrer Website mit, dass er Sie treffen und Ihnen Daten senden kann. Wenn die Transaktion rückgängig gemacht wird, kontaktiert ein Kreditkartenprozessor, der Web-Hooks unterstützt, Ihre Website unter der von Ihnen angegebenen URL und sendet Ihnen Daten in einem maschinenlesbaren Format, das Sie analysieren und Ihre Webanwendung automatisch bearbeiten lassen können.

Ein Webhook ist ein Rückrufmechanismus für eine API. Grundsätzlich implementieren Sie eine API für asynchrone Rückrufe in Verbindung mit einer API, die Sie aufrufen.

Stephen Ostermiller
quelle
"Sie implementieren im Grunde eine API für asynchrone Rückrufe ..." - sollte das nicht "Webhook" sein?
MrWhite
1
Ich versuche zu sagen, dass ein Webhook eine API ist, die Sie implementieren. Sie rufen eine API auf. Ein Webhook ist eine API, die Sie implementieren, damit sie Sie aufrufen.
Stephen Ostermiller
2

Hier ist ein Beispiel für den Unterschied zwischen Webhook und API im Laienbegriff:

Angenommen, Sie haben etwas online bestellt und die Lieferung erfolgt heute, aber Sie sind auf der Arbeit. Sie haben Ihrem Dienstmädchen mitgeteilt, dass es das Paket erhalten soll, sobald es eintrifft. Das Ziel ist, dass Sie benachrichtigt werden müssen, wenn das Paket bereits angekommen ist. Dies ist, was passiert in:

Webhook

  • Sobald das Paket angekommen ist, wird Ihr Dienstmädchen Sie sofort anrufen, um Sie darüber zu informieren, dass das Paket bereits angekommen ist.

API

  • Das Paket ist bereits angekommen, aber Sie wissen es immer noch nicht. Sie haben dann angerufen, dass Sie Dienstmädchen sind, um zu fragen, ob es bereits angekommen ist, dann sagt sie ja.

Der Unterschied besteht darin, dass Sie in der API einen Trigger benötigen, um Daten wie den von Ihnen getätigten Anruf abzurufen , während Webhook Sie automatisch benachrichtigt, sobald neue Daten ohne Trigger eintreffen.

Gemeinschaft
quelle
0

Eine API ist einfach eine kleine Anwendung, mit der Sie von einer bereits vorhandenen Plattform aus auf bestimmte Funktionen oder Daten in einer beliebigen Entwicklungsplattform zugreifen können. Beispiel: Sie möchten den Google Geo-Location-Dienst (bereits vorhandene Plattform) auf Ihrer Website verwenden (Entwicklung) Plattform), anstatt das gesamte System neu zu erstellen und Ihren eigenen Satelliten einzurichten, verwenden Sie eine kleine API , um über Google auf diese Funktion zuzugreifen.

Während Web Hook einfach eine Rückgabe- oder Fallback-URL zu Ihrer Website oder Plattform ist, an die die Antwort und die Daten, die Sie über die API angefordert haben, gesendet wurden und Sie dort die gewünschten Informationen sammeln.

Abel Akponine
quelle