Webhooks ermöglichen die Interaktion zwischen Webanwendungen durch die Verwendung von benutzerdefinierten Callbacks. Dadurch können Webanwendungen automatisiert miteinander kommunizieren.
Diese Technologie steht im Gegensatz zum traditionellen Ansatz, bei dem ein Subjektsystem kontinuierlich Daten von einem Beobachtersystem anfordert. Mit Webhooks sendet das beobachtende System automatisch Daten an das Subjektsystem, sobald ein Ereignis eintritt. Dadurch entfällt die Notwendigkeit einer ständigen Überprüfung durch das Subjekt. Da Webhooks vollständig über das Internet laufen, muss die gesamte Kommunikation zwischen den Systemen in Form von HTTPS-Nachrichten erfolgen.Wie funktionieren Webhooks ?
Webhooks funktionieren mit statischen URLs, die die APIs des Subjektsystems angeben, die benachrichtigt werden sollen, wenn ein Ereignis im beobachtenden System auftritt. Ein Beispiel hierfür ist eine Webanwendung, die alle Bestellungen auf dem Amazon-Konto eines Nutzers sammeln und verwalten soll. In diesem Fall agiert Amazon als Beobachter und die Webapp Custom-Order-Managing als Subjekt. Anstatt dass die Webapp periodisch die Amazon-API aufruft, um die erstellten Bestellungen zu überprüfen, würde ein in einer Custom-Order-Ordering-Webapp erstellter Webhook es Amazon ermöglichen, eine neue Bestellung automatisch über eine registrierte URL an die Webapp zu übermitteln. Um die Nutzung von Webhooks zu ermöglichen, muss der Proband URLs bestimmt haben, die Ereignisbenachrichtigungen vom Beobachter akzeptieren. Dies verringert die Belastung des Subjekts, da HTTP-Aufrufe zwischen den beiden Parteien nur bei Auftreten eines Ereignisses erfolgen.Webhooks vs APIs
Webhooks und APIs haben das gemeinsame Ziel, die Kommunikation zwischen Anwendungen herzustellen. Allerdings haben Webhooks im Vergleich zu APIs Vor- und Nachteile bei der Integration von Anwendungen. Webhooks sind in manchen Fällen eine bessere Lösung. Dies ist der Fall, wenn die Daten auf dem Server häufig aktualisiert werden, da unnötige APIs-Aufrufe vom Client zum Server eliminiert werden. Laut resthooks.com sind 98,5 % der API-Aufrufe unnötig. Ebenso sind Webhooks eine bessere Lösung für Systeme, die Datenaktualisierungen in Echtzeit benötigen. API-Aufrufe werden normalerweise in bestimmten Zeitabständen ausgeführt, was Aktualisierungen in Echtzeit verhindert. Bei Webhooks ist dies nicht der Fall, da die Aktualisierungen vom Server an den Client gesendet werden, sobald der Webhook aktiviert wird. In anderen Situationen hingegen ist die Verwendung von APIs vorzuziehen. Sie ermöglichen es, die Häufigkeit und den Umfang der Datenanfragen an den Server anzupassen. Im Falle von Webhooks wird diese Entscheidung in der Regel vom Server automatisiert.. Für Systeme, die stark variierende Daten verarbeiten, wie z. B. Echtzeit- oder IoT-Systeme, können APIs eine bessere Option sein. Aus gutem Grund ist bei jedem API-Aufruf die Wahrscheinlichkeit von umsetzbaren Antworten sehr hoch. Schließlich können Daten, die von einem Server über einen Webhook gepusht werden, vom Client vollständig ignoriert werden, wenn die REST-Endpunkte offline sind. Wenn der Server keinen Mechanismus hat, um die Übertragung bei einem Fehlschlag erneut zu versuchen, gehen die Datenaktualisierungen vollständig verloren. Um diese Gefahr zu vermeiden, kann man eine Warteschlange von Ereignismeldungen verwenden, um die Aufrufe zu speichern. Beispiele hierfür sind die Plattformen RabbitMQ oder Amazon Simple Queue Service (SQS). Diese Plattformen sind als Zwischenspeicher konzipiert, um das Risiko, einen Webhook-Call zu verlieren, zu eliminieren.Webhooks auf Slack
Viele Plattformen bieten die Möglichkeit, Webhooks zu erstellen, die in eigenen Anwendungen verwendet werden können. Die Messaging-Plattform Slack ermöglicht es z. B., Nachrichten an das Konto eines Slack-Nutzers zu senden.
Webhooks auf Discord
Die Discord-Plattform ermöglicht auch das Erstellen von Webhooks mithilfe von Integrationen, die in eigenen Anwendungen wie GitHub oder Circle CI verwendet werden können. Auf diese Weise können Nachrichten an den Discord-Server eines Nutzers gesendet werden. Um eine Discord-Webhook-URL zu erstellen, ist es notwendig, eine Incoming Webhook Integration über den DiscoHook einzurichten. Melde dich mit dem Account, für den du einen Webhook erstellen möchtest, bei Discord an und erstelle einen Server oder wähle einen bereits bestehenden. Wähle in den Servereinstellungen unter Integrationen die Option zum Erstellen eines Webhooks aus. Wähle den Kanal, über den die Nachrichten gesendet werden sollen. Kopiere die erzeugte Webhook-URL. Der DiscoHook kann dann die Benachrichtigungen oder die URLs versenden.Webhook und Python
Die Programmiersprache Python wird häufig zur Erstellung von Websites, Anwendungen, automatisierten Abläufen oder zur Datenanalyse verwendet. Diese generalistische Programmiersprache ist sehr vielseitig und kann zur Entwicklung einer Vielzahl von Anwendungen verwendet werden. Diese Vielseitigkeit in Kombination mit der leichten Erlernbarkeit hat sie zu einer der beliebtesten Programmiersprachen der heutigen Zeit gemacht. Es gibt zahlreiche Softwarebibliotheken für Datenanalyse, Visualisierung und Machine Learning. Zu den bekanntesten gehören NumPy, Pandas, SciPy und Matplotlib.

