„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Was sind Webhooks und wie nutzt man sie effizient?

Was sind Webhooks und wie nutzt man sie effizient?

Veröffentlicht am 07.11.2024
Durchsuche:180

O Que São Webhooks e Como Utilizá-los Eficientemente

Webhooks sind ein leistungsstarkes Tool zur Integration verschiedener Systeme und zum Versenden von Benachrichtigungen in Echtzeit. Sie ermöglichen einer Anwendung, eine andere automatisch zu benachrichtigen, wenn ein Ereignis eintritt, ohne dass ständige Anfragen erforderlich sind, um zu prüfen, ob es etwas Neues gibt, wie es bei einer herkömmlichen API der Fall ist. In diesem Beitrag werden wir verstehen, wie sie funktionieren, wie man sie konfiguriert, und wir werden ein praktisches Beispiel mit dem Webhook.site-Tool untersuchen, das die Entwicklung und das Testen von Webhooks erleichtert.


Was sind Webhooks?

Einfach ausgedrückt ist ein Webhook ein Mechanismus, der es einem Dienst ermöglicht, bei jedem Auftreten eines Ereignisses eine HTTP-Anfrage an eine bestimmte URL zu senden. Anstatt einen Server wiederholt abzufragen, um nach Änderungen zu suchen (wie es bei der Verwendung einer API der Fall ist), benachrichtigt der Webhook Ihre Anwendung, sobald das Ereignis eintritt. Das spart Zeit und Ressourcen und macht die Interaktion zwischen Systemen effizienter.

Ein klassisches Beispiel für die Verwendung von Webhooks sind Zahlungsdienste: Wenn eine Transaktion abgeschlossen ist, sendet das System einen Webhook an Ihre Anwendung, der Sie über den Zahlungsstatus informiert. Von dort aus kann Ihre Anwendung diese Informationen verarbeiten, beispielsweise den Status einer Bestellung aktualisieren, eine Quittung per E-Mail senden und andere Aktionen ausführen.


Wie funktionieren Webhooks?

  1. Webhook-Konfiguration: Sie registrieren eine URL, um Benachrichtigungen zu erhalten. Diese URL wird jedes Mal aufgerufen, wenn ein relevantes Ereignis auf dem Dienst eintritt, der den Webhook sendet.

  2. Ereignis tritt ein: Wenn das konfigurierte Ereignis (z. B. eine Transaktion, Datenaktualisierung oder Erstellung eines Datensatzes) eintritt, löst der Dienst eine HTTP-Anfrage an die registrierte URL aus.

  3. Webhook-Verarbeitung: Ihre Anwendung empfängt diese Anfrage und verarbeitet die Informationen. Sie können beispielsweise Daten in der Datenbank aktualisieren, eine Antwort an den Benutzer senden oder jede andere notwendige Aufgabe ausführen.

  4. Anfrageantwort: Nach der Verarbeitung des Webhooks muss Ihre Anwendung mit einem HTTP-Statuscode (z. B. 200 OK) antworten, um Sie darüber zu informieren, dass die Anfrage korrekt empfangen und verarbeitet wurde.


Praxisbeispiel mit Webhook.site

Bevor Sie Webhooks in einer echten Anwendung konfigurieren, empfiehlt es sich, sie lokal oder in einer Entwicklungsumgebung zu testen. Ein hervorragendes Tool hierfür ist Webhook.site. Es stellt eine temporäre URL bereit, über die Sie Webhooks zur Vorschau und zum Debuggen senden können, sodass Sie genau sehen können, wie die Daten empfangen werden.

Lassen Sie uns Webhook.site verwenden, um den Empfang eines Webhooks zu testen.

  1. Zugriff auf Webhook.site:

    • Gehen Sie zu Webhook.site.
    • Die Website generiert automatisch eine eindeutige URL für Sie (etwa https://webhook.site/unique-url). Dies ist die URL, die wir zum Empfangen von Benachrichtigungen verwenden.
  2. Webhook-Senden konfigurieren:

    • Stellen Sie sich vor, Sie haben ein System, das Webhooks auslöst. Konfigurieren Sie dieses System so, dass Anfragen an die von Webhook.site bereitgestellte URL gesendet werden.
    • Wenn Sie lokal testen möchten, können Sie das Senden von Webhooks mit Tools wie cURL oder Postman simulieren und Anfragen an die generierte URL senden.

Jetzt implementieren wir etwas Node.js-Code, der das Senden eines Webhooks an diese URL simuliert.


Webhook-Implementierungsbeispiel in Node.js

Hier ist ein Beispiel dafür, wie man einen Endpunkt für den Empfang von Webhooks konfiguriert und wie man einen Webhook mit Axios (oder einer anderen HTTP-Bibliothek) sendet:

const express = require('express');
const axios = require('axios');
const app = express();

// Middleware para processar o body das requisições como JSON
app.use(express.json());

// Endpoint que recebe os webhooks
app.post('/webhook-receiver', (req, res) => {
  const event = req.body;

  // Processar o evento (aqui você adiciona a lógica que desejar)
  console.log('Webhook recebido:', event);

  // Retornar um status de sucesso para o serviço que enviou o webhook
  res.status(200).send('Evento processado com sucesso');
});

// Simulando o envio de um webhook para o Webhook.site
const webhookURL = 'https://webhook.site/unique-url';  // Substitua pela sua URL do Webhook.site

const sendWebhook = async () => {
  try {
    const payload = {
      event: 'payment_completed',
      data: {
        orderId: '12345',
        amount: 100.0,
        currency: 'USD'
      }
    };

    const response = await axios.post(webhookURL, payload);
    console.log('Webhook enviado com sucesso:', response.status);
  } catch (error) {
    console.error('Erro ao enviar webhook:', error);
  }
};

app.listen(3000, () => {
  console.log('Servidor rodando na porta 3000');

  // Enviar o webhook após o servidor iniciar
  sendWebhook();
});

In diesem Beispiel:

  • Wir haben einen /webhook-receiver-Endpunkt erstellt, der den Empfang eines Webhooks simuliert.
  • Wir verwenden Axios, um das Senden eines Webhooks an Webhook.site zu simulieren und dabei eine Nutzlast mit Daten aus einer fiktiven Zahlung zu übergeben.
  • Webhook.site empfängt die Benachrichtigung und zeigt den Anforderungsinhalt im Panel an.

Gute Sicherheitspraktiken in Webhooks

Da bei Webhooks Daten direkt an eine URL gesendet werden, müssen unbedingt einige Sicherheitsvorkehrungen getroffen werden:

  1. Origin Validation: Überprüfen Sie, ob die Anfrage tatsächlich vom erwarteten Dienst kommt. Viele Dienste bieten eine kryptografische Signatur (z. B. mit HMAC), mit der Sie die Authentizität der Anfrage überprüfen können.

  2. HTTPS verwenden: Konfigurieren Sie Ihre Webhook-Endpunkte immer für die Verwendung von HTTPS und stellen Sie sicher, dass die Kommunikation zwischen dem Dienst und Ihrer Anwendung verschlüsselt ist.

  3. Authentifizierung: Zusätzlich zu HTTPS erfordern einige Anwendungen, dass Webhook-Anfragen ein Authentifizierungstoken oder einen Authentifizierungsschlüssel als zusätzliche Sicherheitsebene enthalten.

  4. Ratenbegrenzung: Implementieren Sie Beschränkungen für die Anzahl der Anfragen, die Ihr Server in einem bestimmten Zeitraum verarbeiten kann, um zu verhindern, dass Ihre Anwendung in kurzer Zeit mit zu vielen Anfragen überlastet wird.


Webhooks vs. APIs

Menschen verwechseln Webhooks oft mit APIs: Hier ist der Hauptunterschied:

  • APIs: Sie sind aktiv. Ihre Anwendung stellt eine Anfrage an einen Server und empfängt als Antwort Daten. Sie müssen nach den Informationen „suchen“.
  • Webhooks: Sie sind passiv. Der Server sendet automatisch Informationen an Ihre Anwendung, wenn ein Ereignis auftritt. Sie „erhalten“ die Informationen, ohne dass Sie danach fragen müssen.

Webhooks sind besonders nützlich in Szenarien, in denen Sie Echtzeitbenachrichtigungen benötigen, z. B. in Zahlungssystemen, Ereignisbenachrichtigungen und Integrationen zwischen verschiedenen Diensten.


Abschluss

Webhooks sind eine einfache und effiziente Möglichkeit, verschiedenen Systemen die automatische Kommunikation in Echtzeit zu ermöglichen. Mit Tools wie Webhook.site können Sie Ihre Webhooks testen und debuggen, bevor Sie sie in die Produktion integrieren. Darüber hinaus stellt die Einhaltung guter Sicherheitspraktiken sicher, dass Ihre Endpunkte vor unerwünschtem Zugriff geschützt sind.

Wenn Sie eine moderne Anwendung entwickeln und verschiedene Dienste integrieren müssen, sind Webhooks eine hervorragende Lösung, um die Kommunikation zwischen ihnen zu automatisieren.


Wenn Sie Fragen oder interessante Erfahrungen mit Webhooks haben, teilen Sie diese in den Kommentaren!

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/lucaspereiradesouzat/o-que-sao-webhooks-e-como-utiliza-los-eficientemente-1iel?1 Bei Verstößen wenden Sie sich bitte an [email protected] um es zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3