Flux de travail de bout en bout · Les guides
Webhooks et intégration axée sur les événements
Configuration de connexion Web sortante, un récepteur sécurisé, une protection en double et la récupération d'événements manqués via API.
Les webhooks réduisent la latence des changements mais ne remplacent pas la source de vérité.
Les services d'intégration et de backend basés sur des événements01
Définir les événements et la propriété
Commencez par un événement d'affaires tel qu'une nouvelle commande ou une commande modifiée, un changement de stock ou un changements de prix. Définissez l'action du propriétaire des données et du destinataire pour chaque événements.
Conservez la charge utile d'origine de la connexion Web séparément de votre modèle normalisé pendant une période limitée.
Un nouveau champ facultatif ne doit pas rompre l'analyse d'une structure d'événement connue.
Points d'extrémité API connexes
POST/api/webhook/Créer une connexionGET/api/webhook/Liste des paramètres de connexion
02
Construire un récepteur HTTP sécurisé
- 1
Réserver la demande
Acceptez seulement les méthodes et les types de contenu requis, mettez en place une limite de taille du corps et utilisez un court laps de temps de lecture.
- 2
Vérifiez la source
Utilisez un secret dans une URL non répertoriée ou une en-tête configurable et ajoutez le filtrage de passerelle API. Ne faites pas confiance à User-Agent seul.
- 3
Persévérez à l'événement
Conservez la charge utile et la clé de déduplication dans une transaction, puis retournez rapidement une réponse réussie.
- 4
Processus asynchrone
Appeler ERP, WMS et autres systèmes depuis une file d'attente au lieu de la demande HTTP entrante.
Une réponse lente augmente le délai et le risque de livraison dupliquée.
app.post('/selsup/events/secret-path', async (request, response) => {
const eventKey = createStableEventKey(request.body);
const inserted = await inbox.insertOnce(eventKey, request.body);
response.sendStatus(inserted ? 202 : 200);
});
03
Les doublons, les ordonnements et les dédoublements
Traiter la livraison en double comme normal. Utilisez un identifiant d'événement stable lorsqu'il est présent; autrement, dérivez une clé du type d'entité, de l'id de l"entité et du temps de modification.
Les événements peuvent arriver hors ordre. Comparer modifiéDate avant d'écrire ou recharger l'entité en cours via API.
Retournez un statut de réussite pour un événement déjà traité. Sinon, l'expéditeur peut continuer à réessayer le travail terminé.
Un tableau d'événements entrants avec une clé d'évent unique, le statut et le nombre d'essais simplifient la déduplication, la répétition et l'audit.
04
Récupérer les événements manqués
Exécutez une reconciliation périodique API même lorsque les liens Web sont sains.
Après l'arrêt du récepteur, vider la boîte de réception et demander des modifications pour la fenêtre de panne complète. La même logique de déduplication devrait combiner les résultats webhook et API.
Points d'extrémité API connexes
GET/api/order/findRécupérer les modifications de commandeGET/api/wms/stock/findRéconcilier les changements de stock
05
Gérer le cycle de vie du webhook
Exposez l'URL active, le type d'événement, le dernier reçu réussi et le dernier error dans votre intégration. Cela permet un diagnostic sans accès direct au journal du serveur.
Avant de remplacer ou de supprimer une URL, vérifiez que le nouveau récepteur accepte les événements.
Points d'extrémité API connexes
GET/api/webhook/Réviser les liens Web configurésDELETE/api/webhook/{webhookId}Supprimer un lien