Was ist ein Webhook und wofür wird er verwendet?

Ein Webhook ist ein automatisches Kommunikationssystem zwischen Anwendungen. Sie bieten eine einfache Lösung für den Datenaustausch zwischen Webanwendungen.

23 dic 2022

Was ist ein Webhook und wofür wird er verwendet?
Was ist ein Webhook und wofür wird er verwendet?
Was ist ein Webhook und wofür wird er verwendet?

Was ist ein Webhook?

Wir wissen, dass Sie unbedingt wissen wollen, was dieser Begriff bedeutet. Es kann sogar Angelhaken ähneln, aber in diesem Fall im Meer der Technologie. 

Ein Haken? Ja, das stimmt. Ein Webhook ist ein Tool, das in die meisten Webanwendungen integriert werden kann und Ihnen eine Menge Arbeit erspart. 

Es bietet viele Optionen und Werkzeuge für die Nutzung. So können Sie z. B. Ihre E-Mail-Marketing-Software mit anderen Anwendungen verbinden oder das Zahlungs-Gateway veranlassen, eine E-Mail an einen Benutzer zu senden, wenn eine Zahlung fehlschlägt.

Wenn Sie mehr darüber erfahren möchten, was ein Webhook ist und wie es funktioniert, sollten Sie diesen Artikel nicht verpassen, in dem wir die Merkmale und Funktionen dieses wertvollen Tools erklären:  

Was ist ein Webhook?

Ein Webhook ist eine Prozessrückruf-Funktion, die auf der HTTP-Sprache basiert. 

Mit dieser Funktion kann eine leichtgewichtige Kommunikation aufgebaut werden. Diese Kommunikation basiert auf Ereignissen, die zwischen 2 Anwendungsprogrammierschnittstellen auftreten.

Webhooks werden von einer Vielzahl von Webanwendungen verwendet. Sie werden verwendet, um kleine Datenmengen von anderen Anwendungen zu empfangen und auch um Automatisierung-Workflows in GitOps-Umgebungen auszulösen.

Die besten Eigenschaften von Webhooks

Wow, Webhooks haben erstaunliche Funktionen: 

  • Sie vermeiden die Notwendigkeit ständiger Überarbeitungen, was Ressourcen für die Client-Anwendung spart.

  • Wenn eine Anwendung mit Webhooks kompatibel ist, sind diese über die Benutzeroberfläche der Serveranwendung leicht zu konfigurieren.

  • In diesem Sinne fügt der Client die URL des Webhooks seiner Anwendung hinzu und legt einige grundlegende Parameter fest, z. B. das Ereignis, an dem er interessiert ist.

  • Die Datenübertragung ist automatisiert und die Nutzdaten werden gesendet, sobald das in der Serveranwendung angegebene Ereignis eintritt.

  • Der Austausch wird durch das Ereignis eingeleitet. Es erfolgt also so schnell, wie Daten vom Server zum Client übertragen werden können. Dies geschieht in Echtzeit, wie es bei jeder Datenübertragung möglich ist.

  • Webhooks sind gut für leichte, gezielte Uploads. Sie sind davon abhängig, dass der Server die Menge der gesendeten Daten festlegt. Sie überlassen es dem Kunden, die Nutzdaten zu interpretieren und produktiv zu nutzen.

  • Da der Client den genauen Zeitpunkt und Umfang der Datenübertragung nicht kontrolliert, können Webhooks kleine Datenmengen zwischen zwei Endpunkten verarbeiten, oft in Form einer Benachrichtigung.

Grundlegender Unterschied zwischen einer API und einer Webhook-API

Webhooks werden oft mit APIs verwechselt oder zusammen erwähnt. Obwohl die beiden oft ähnlich sind und zum gleichen Ergebnis führen können, handelt es sich in Wirklichkeit um unterschiedliche Dinge:

  • Während Webhooks Werkzeuge sind, über die verschiedene Anwendungen miteinander kommunizieren, verwenden APIs eine Anwendungsprogrammierschnittstelle.

  • Sie sind oft verwirrt, weil sowohl ein Webhook als auch eine API denselben Dienst anbieten können.

  • APIs sind Lösungen, die viel flexibler und unabhängiger sind, aber manchmal ist es keine gute Option, sie zu verwenden.

  • Dies ist häufig der Fall, wenn sie für sehr kleine Projekte verwendet werden oder wenn es an Kenntnissen fehlt, um damit umzugehen, da der Prozess sehr komplex sein kann.

In solchen Fällen empfiehlt es sich, einen Webhook zu verwenden, der wesentlich kostengünstiger ist, da er einfacher zu bedienen ist als APIs.

Der Hauptunterschied zwischen einer API und einem Webhook besteht in der Art und Weise, wie sie die Daten erhalten, da diese durch einen als Polling bezeichneten Prozess abgerufen werden.

Polling entsteht, wenn Sie in regelmäßigen Abständen eine Anfrage an einen API-Server stellen, um nach neuen Daten zu suchen. 

Der Webhook ermöglicht es dem Anbieter, Echtzeitdaten an Ihre Anwendung zu senden, weshalb Webhooks auch als „umgekehrte APIs“ bezeichnet werden können.

Wie ein Webhook funktioniert

Webhooks sind HTTP-Anfragen, die zuvor vom Benutzer definiert wurden und durch bestimmte Ereignisse ausgelöst werden. 

Sie sind wie kleine Codefragmente, die mit einer Webanwendung verknüpft sind und bei bestimmten Aktionen an eine URL gesendet werden, die Sie als http-Anfrage angegeben haben.

Was kann ein Webhook sonst noch tun? Schauen wir uns zwei grundlegende Punkte an, wie es funktioniert: 

1. Eine URL muss registriert sein, damit Webhooks funktionieren.

Damit Webhooks funktionieren, müssen Sie eine URL registrieren. Diese URL muss jedes Mal benachrichtigt werden, wenn ein Ereignis eintritt. Der erstellte Weg muss die Logik enthalten, die beim Eintreten des Ereignisses ausgeführt wird.

Auf diese Weise muss das System nicht wissen, was ausgeführt werden soll. 

2. Sie muss nur die zu benachrichtigenden Wege im Auge behalten.

Dies erweist sich als ein leistungsfähiges Automatisierungsinstrument. Die Anwendung, die die Informationen von der angegebenen URL erhält, weiß nicht nur, was passiert ist, sondern auch, wie sie auf das Ereignis reagieren muss.

Dabei ist zu beachten, dass die Logik über eine HTTP-POST-Anfrage zugänglich sein muss.

Eine POST-Anfrage ist eine Methode, die die Übertragung von Informationen im Textkörper der Anfrage über HTTP ermöglicht. Im Textkörper finden Sie direkt die Informationen, die das eingetretene Ereignis spezifizieren.

Sie enthält auch Informationen darüber, welcher Benutzer das Ereignis ausgelöst hat, zu welchem Zeitpunkt, sowie spezifischere Daten über das Ereignis und das Format des Textes (JSON, XML). Es wird daher empfohlen, das Dokument stets zu lesen.

Wie Webhooks für die Entwicklung der Infrastruktur genutzt werden

Webhooks werden in der Regel verwendet, um die Kommunikation zwischen zwei Anwendungen zu vereinfachen.

Sie können auch verwendet werden, um Workflows für Infrastructure as Code zu automatisieren und zu GitOps-Praktiken beizutragen.

Was ist Infrastruktur als Code (IaC)? 

Bei „Infrastructure as Code" geht es um die Verwaltung und Bereitstellung von Infrastruktur durch Code anstelle manueller Prozesse.

Versionskontrolle kann als ein wichtiger Aspekt von IaC angesehen werden, und Konfigurationsdateien müssen wie jede andere Software-Quellcodedatei unter Versionskontrolle stehen.

Die Infrastruktur als Code bereitzustellen bedeutet auch, dass die Infrastruktur in modulare Komponenten zerlegt werden kann, die dann durch Automatisierung auf verschiedene Weise kombiniert werden können.

Durch die Automatisierung der Bereitstellung der Infrastruktur mit IaC müssen Entwickler Betriebssysteme, Server, Speicher und andere Infrastrukturkomponenten nicht mehr in jeder Situation, in der sie eine Anwendung entwickeln oder bereitstellen, manuell bereitstellen und verwalten.

Die Infrastruktur-Kodierung bietet eine Vorlage für die Bereitstellung.

Während diese Prozesse manuell durchgeführt werden können, lassen sich die Abläufe mit einer unternehmensweiten Wunschzustand-Engine automatisieren. 

Warum sind Webhooks so wichtig?

Webhooks verringern die Schritte, die für die Bereitstellung und Verwaltung von Git-zentrierten Bereitstellungspipelines erforderlich sind, und können zum automatischen Starten kompletter Workflows unter dieser Modalität verwendet werden.

In einer GitOps-Umgebung funktioniert ein Webhook genauso wie zwischen 2 Anwendungen; wenn er durch ein bestimmtes Ereignis ausgelöst wird, sendet eine API eine Nutzlast an eine andere API.

Der Unterschied liegt in der Art des Ereignisses, das den Webhook auslöst, und darin, was der Empfänger mit der Nutzlast macht.

Das Git-Repository spielt die Rolle der Serveranwendung, während die gewünschte State-Engine, die für die Verwaltung des Zustands der Infrastruktur zuständig ist, die Rolle der Client-Anwendung übernimmt.

Bei jeder Änderung am Repository kann ein Webhook konfiguriert werden, um die Kommunikation auszulösen.

Ein Beispiel hierfür ist die Aktualisierung eines Codes und dessen Übermittlung an das Git-Repository. Dieses Ereignis löst den Webhook aus.

Das Repository sendet dann automatisch die Payload an die Webhook-Adresse der gewünschten Status-Engine und informiert sie über eine Codeänderung.

Die Verwendung von Webhooks auf diese Weise ermöglicht es den gewünschten State-Engines, alle Änderungen an der Infrastruktur genau zu verfolgen, ohne die Repositories aktiv überwachen zu müssen. 

Wenn die gewünschte Zustandsmaschine auch die Automatisierung unterstützt, können Webhooks zum Auslösen von IaC-Workflows verwendet werden.

Beste Praktiken für die Arbeit mit Webhook

1. Konsultieren Sie die Webhook-Dokumentation

Bevor Sie mit einem Webhook arbeiten, sollten Sie die Webhook-Dokumentation lesen, um den Prozess weniger kompliziert zu machen, als es ist.

2. Prüfen Sie, ob die Ereignisse gesendet werden 

Überprüfen Sie, ob die Ereignisse tatsächlich gesendet werden. Hierfür können sehr nützliche Tools eingesetzt werden, die alle an diese Route gesendeten Anfragen sammeln, um sie zu überprüfen.

Auf diese Weise lässt sich auf einfache Weise überprüfen, ob eine Route korrekt funktioniert und ob die Ereignisdaten problemlos empfangen werden.

Sie können auch verwendet werden, um zu überprüfen, ob die Daten im Textkörper der Anfragen mit den richtigen Objekten in den Dokumenten übereinstimmen.

3. Führen Sie eine lokale Konfiguration durch

Es ist ideal, zunächst lokal zu beginnen, damit Sie die Möglichkeit haben, die gesamte Technologie zu nutzen und verschiedene Arten von Tests in einer kontrollierten Umgebung durchzuführen.

Sie müssen bedenken, dass die Logik, die Sie in Ihrem Webhook verwenden, nur auf Ihrem Computer gehostet wird.

Aus diesem Grund können Sie keine Tests durchführen, die Anwendungen im Internet kommunizieren. Um dieses Problem zu lösen, gibt es Tools wie ngrok, mit denen Sie Ihren lokalen Host öffentlich machen können.

Wenn Sie Ihren Localhost immer noch nicht öffnen wollen, können Sie versuchen, Anfragen mithilfe von Tools wie Postnam oder Insomnia abzulehnen, mit denen Sie HTTP-Anfragen manuell fälschen können.

4. Hosten Sie die erstellte Logik

Sobald Sie alles eingerichtet haben, müssen Sie Tests mit Echtzeitdaten durchführen.

Mithilfe von Anwendungen wie ngrok haben Sie die Möglichkeit, Ihren lokalen Host für die Außenwelt zu öffnen. 

Wenn Sie die Tests durchführen und alles gut läuft, ist es an der Zeit, Ihre Logik zu hosten. Es gibt zwei Möglichkeiten, dies zu tun: Hosten Sie sie auf einem vollständigen Server oder hosten Sie sie durch die Verwendung von serverlosen Funktionen.

Webhook ist ideal für den Zugriff auf externe Funktionalitäten

Der Hauptvorteil, den ein Webhook bietet, besteht darin, dass alle Benachrichtigungen in Echtzeit und unmittelbar erfolgen. Sie bieten zusätzliche Effizienz durch die Möglichkeit, Anwendungen zu skalieren, und haben einfachen Zugang zu externen Funktionen.

Mit Webhooks müssen Sie die Daten nicht wie bei einer API abfragen. Wenn sie eintreten, wird das Ereignis als Daten an andere Anwendungen übermittelt.

Dank Webhooks haben Sie mehr Kontrolle darüber, was mit Ihren E-Mails geschieht, und können so Ihr CRM immer auf dem neuesten Stand halten.

Haben Sie sonst noch etwas über Webhooks zu sagen, verwenden Sie sie für Ihre Programmierprojekte? Wir würden uns freuen, von Ihnen in den Kommentaren unten zu hören!