Definition

Webhook

Ein Webhook ist ein Ansatz der Softwarearchitektur, der es Anwendungen und Diensten ermöglicht, eine webbasierte Benachrichtigung an andere Anwendungen zu übermitteln, wenn ein bestimmtes Ereignis eintritt. Die Anwendung bietet Benutzern die Möglichkeit, sich zu registrieren oder Aufrufe der Anwendungsprogrammierschnittstelle mit bestimmten Ereignissen unter bestimmten Bedingungen zu verbinden, zum Beispiel wenn ein neuer Benutzer, ein neues Konto oder eine neue Bestellung angelegt wird oder eine Bestellung ein Lager verlässt.

Webhooks verwenden ähnliche Anforderungen wie If This Then That (IFTTT)-Anweisungen. Wenn ein Ereignis den Webhook auslöst, ruft er eine andere externe API auf. Dadurch kann die Anwendung das Wissen über das Ereignis an Dritte weitergeben, beispielsweise an eine EAI-Plattform (Enterprise Architecture Integration) oder direkt an andere Anwendungen.

Webhooks werden über HTTP oder HTTPS übertragen, normalerweise als POST-Anfrage über eine bestimmte URL. Die POST-Daten werden von der API der empfangenden Anwendung interpretiert, die die angeforderte Aktion auslöst und eine Nachricht an die ursprüngliche Anwendung sendet, um zu bestätigen, dass die Aufgabe abgeschlossen ist. Die gesendeten Daten werden in der Regel in JSON oder XML formatiert.

Abbildung 1: Webhooks verwenden HTTP-POST-Nachrichten, um beim Eintreten eines Ereignisses eine Aktion in einem anderen Programm auszulösen.

Webhooks vs. APIs

Wenn Ereignisse ausgelöst werden, ruft ein Webhook die API einer anderen Software auf. Bei diesem Push-Ereignis teilt ein Webhook einer anderen Anwendung mit, dass etwas passiert ist. Ein API-Aufruf dient dazu, entweder eine Aufgabe auszuführen oder einen Status zu überprüfen, entweder mit Befehlen zum Erstellen, Aktualisieren oder Löschen oder möglicherweise mit Abfrage-/Lesebefehlen (CRUD).

Eine einfache Anwendung könnte zum Beispiel eine Benutzeroberfläche auf einer Datenbank sein, die es dem Kundendienst ermöglicht, Daten zu erstellen und zu aktualisieren. Mit einer API könnten andere Programmierer den Wert automatisch ändern und die menschliche Eingabe überspringen.

In diesem Beispiel würden Webhooks das Gegenteil bewirken, indem sie ausgelöst werden, wenn ein Mensch eine Änderung vornimmt, um andere Systeme zu benachrichtigen. Dadurch könnte eine doppelte Eingabe vermieden werden, da der Benutzer die Änderung an einer Stelle vornimmt und der Webhook andere Systeme aktualisiert.

Vorteile von Webhooks

Da Webhooks andere Systeme benachrichtigen, wenn ein Ereignis eintritt, werden Änderungen ereignisgesteuert und nahezu in Echtzeit vorgenommen. Ein Continuous-Integration-System, das Webhooks verwendet, könnte zum Beispiel nur dann eine Nachricht an das Sicherheitsteam senden, wenn ein Build-Fehler auf ein Sicherheitsproblem zurückzuführen ist. Auf diese Weise werden Informationen auf die Bildschirme des Sicherheitsteams gepusht, anstatt dass sie in regelmäßigen Abständen in anderen Systemen gesucht werden müssen. Außerdem können die Systeme so nahezu in Echtzeit synchronisiert werden, anstatt über Nacht oder in einem Batch.

Eine Alternative zu einem Webhook ist ein Polling-Prozess. Bei einem Polling-Prozess wartet ein Programm fünf oder zehn Minuten und ruft dann eine API auf, um eine Liste der letzten Transaktionen zu erhalten, wobei alle neuen Transaktionen zu einer Liste hinzugefügt und verarbeitet werden. Dies setzt voraus, dass die API eine Liste der letzten Transaktionen bereitstellt.

Abbildung 2: Ein Polling-Prozess sendet mehrere Abfragen, während ein Webhook nur dann eine Nachricht sendet, wenn ein Ereignis eintritt.
Abbildung 2: Ein Polling-Prozess sendet mehrere Abfragen, während ein Webhook nur dann eine Nachricht sendet, wenn ein Ereignis eintritt.

In diesem Beispiel besteht der Abfrageprozess aus einem Aufruf des Lagersystems an das CRM, bei dem alle 10 Minuten abgefragt wird, ob ein neuer Auftrag vorliegt. Bei so vielen Abfragen wächst die Anzahl der Nachrichten exponentiell und belastet CPUsNetzwerkeArbeitsspeicher und Festplatte mit Anfragen und Nachrichten, die meist leer sind. Im Gegensatz dazu würde ein Webhook nur dann Nachrichten auslösen, wenn sich etwas ändert.

Verwendungszwecke und Beispiele für Webhooks

Webhooks sind eine einfache Möglichkeit, eine API zugänglich zu machen, um Anrufe zu tätigen oder zu empfangen oder textbasierte Antworten an Benutzer zu senden, wenn bestimmte Ereignisse innerhalb der Anwendung auftreten. Zu den Plattformen, die Webhooks unterstützen, gehören FacebookGithub, Trello, Confluence und Google Calendar.

Praktische Anwendungen von Webhooks können sein:

  • Tägliche automatische E-Mail-Erinnerungen für Meetings
  • Bestätigungen von bearbeiteten und abgeschlossenen Zahlungen
  • Synchronisierung von Änderungen in Kundendaten zwischen Anwendungen

Webhooks sind im Internet der Dinge (IoT) sehr verbreitet, wo ein Sensor eine Temperaturänderung feststellen und die Klimaanlage anrufen könnte. Ein Bewegungssensor könnte eine Nachricht an ein Sicherheitssystem senden oder Geräusche erzeugen, um zum Beispiel einen bellenden Hund zu simulieren.

Einige Systeme können keine Webhooks senden oder empfangen, verfügen aber über eine Befehlszeilenschnittstelle (Command Line Interface, CLI). Ein Webhook-Server bietet eine Webhook-Integration, die es ermöglicht, Web-Endpunkte einzurichten oder Webdienste aufzurufen. Unternehmen wie Zapier, Collect2 und Webhook.site bieten diese Art der Integration als Service (IaaS) an.

Diese Definition wurde zuletzt im August 2023 aktualisiert

Erfahren Sie mehr über Data-Center-Betrieb