Webhooks
Webhooks ermöglichen es Ihnen, Echtzeit-Updates von Meshy zu erhalten, wenn Ihre API-Aufgaben abgeschlossen sind oder den Status ändern. Sobald sie konfiguriert sind, sendet Meshy Ereignis-Payloads im JSON-Format an die von Ihnen angegebenen URLs.
Warum Webhooks erstellen
Die Verwendung von Webhooks bietet mehrere Vorteile, insbesondere im Hinblick auf die automatische Überprüfung von API-Aufgabenstatus. Webhooks erfordern weniger Aufwand und Kosten als das kontinuierliche Abfragen der API, um Statusaktualisierungen zu erhalten. Webhooks ermöglichen auch nahezu Echtzeit-Updates und skalieren letztendlich besser als API-Abfragen. Dies ermöglicht es Ihnen auch, Ihre Ratenlimits besser zu verwalten, insbesondere wenn Sie ständig abfragen.
Einrichtung & Konfiguration
Um Webhooks zu aktivieren, navigieren Sie zur API-Einstellungsseite, wenn Sie in der Meshy-Webanwendung angemeldet sind. Finden Sie den Abschnitt "Webhooks" unter Ihren API-Schlüsseln und klicken Sie auf die Schaltfläche "Webhook erstellen". Geben Sie Ihre gewünschte HTTPS-URL an, um Webhooks zu empfangen, und aktivieren Sie den Webhook, um automatisch Aufgabenaktualisierungen von Meshy zu erhalten. Sie können maximal 5 aktive Webhooks pro Meshy-Konto haben. Wenn ein Webhook aktiviert ist, werden alle API-Aufgabenstatusaktualisierungen automatisch an die Payload-URL gesendet. Aus Sicherheitsgründen erlauben wir derzeit nur das Senden von Webhooks an HTTPS-URLs. Wenn Sie lokale Tests konfigurieren möchten, siehe den folgenden Abschnitt.
Anforderungen an die Webhook-Zustellung
Damit Ihr Webhook normal funktioniert und weiterhin Ereignisse empfängt:
- Ihr Server muss mit einem HTTP-Statuscode unter 400 antworten (z.B.
200 OK,202 Accepted). - Jede Antwort mit einem Statuscode
>= 400wird als fehlgeschlagene Zustellung behandelt. - Mehrere aufeinanderfolgende Fehler können:
- Verzögerungen oder falsche Reihenfolge bei Fortschrittsaktualisierungen verursachen
- Ihren Webhook nach wiederholten Versuchen automatisch deaktivieren (siehe Auto-Deaktivierungsrichtlinie)
Tipp: Geben Sie immer eine Erfolgsmeldung zurück, nachdem Sie die Webhook-Payload validiert und gespeichert haben, auch wenn die weitere Verarbeitung asynchron erfolgt.
Weiterleitung von Webhooks für lokale Tests
Wenn Sie Ihren Webhook-Code lokal testen möchten, der typischerweise unter einer HTTP-Adresse läuft, können Sie eine Webhook-Proxy-URL verwenden, um Webhooks an Ihren Computer oder Codespace weiterzuleiten. Die folgenden Schritte werden mit smee.io empfohlen, aber Sie können jeden Dienst verwenden, um eine Webhook-Proxy-URL zu generieren.
Eine Webhook-Proxy-URL erhalten:
- Navigieren Sie in Ihrem Browser zu https://smee.io/
- Klicken Sie auf "Start a new channel"
- Kopieren Sie die vollständige URL unter "Webhook Proxy URL". Sie werden diese URL in den folgenden Einrichtungsschritten verwenden.
Webhooks weiterleiten:
- Wenn Sie smee-client noch nicht installiert haben, führen Sie den folgenden Befehl in Ihrem Terminal aus.
npm install --global smee-client
- Um weitergeleitete Webhooks von smee.io zu empfangen, führen Sie den folgenden Befehl in Ihrem Terminal aus. Ersetzen Sie
WEBHOOK_PROXY_URLdurch Ihre zuvor erhaltene Webhook-Proxy-URL.
smee --url WEBHOOK_PROXY_URL --path /webhook --port 3000
Sie sollten eine Ausgabe sehen, die so aussieht, wobei WEBHOOK_PROXY_URL Ihre Webhook-Proxy-URL ist:
Forwarding WEBHOOK_PROXY_URL to http://127.0.0.1:3000/webhook
Connected WEBHOOK_PROXY_URL
- Lassen Sie dies laufen, während Sie Ihren Webhook testen. Wenn Sie die Weiterleitung von Webhooks stoppen möchten, drücken Sie Strg+C.
Beachten Sie, dass der Pfad /webhook und der Port 3000 ist. Diese Werte können nützlich sein, wenn Sie später Ihren eigenen Code einrichten möchten, um Webhook-Zustellungen zu empfangen.
Einen Webhook erstellen:
Sie können jetzt die Webhook-Proxy-URL verwenden, um einen neuen Webhook auf der Meshy API-Einstellungsseite zu erstellen.
Beispielantwort
Wenn sich der Status einer Aufgabe ändert, sendet Meshy eine Webhook-Payload an Ihre konfigurierte URL. Die Payload enthält das Aufgabenobjekt im JSON-Format. Für eine vollständige Beschreibung aller Aufgabenobjekteigenschaften und Beispiel-Payloads siehe: