Nous étendons activement la prise en charge des webhooks.Nouvellement ajouté : réessais automatiques avec backoff exponentiel — les livraisons échouées sont maintenant réessayées jusqu’à 5 fois sur 30 minutes.À venir bientôt :
- URLs de webhook par défaut pour toute l’équipe
- Signatures cryptographiques pour la vérification des charges utiles
Aperçu
Les webhooks envoient des notifications HTTP POST en temps réel à votre serveur lorsque des opérations de longue durée se terminent. Au lieu de sonder pour connaître le statut, votre application reçoit des mises à jour instantanées.Cas d’utilisation
Traitement Asynchrone
Recevez une notification lorsque des lots ou des crawls se terminent au lieu de sonder
Déclencheurs de Pipeline
Déclenchez automatiquement le traitement en aval lorsque les données sont prêtes
Alertes
Envoyez des alertes à Slack, par email ou à d’autres systèmes à la fin
Synchronisation de Données
Gardez votre base de données synchronisée avec les résultats d’Olostep
Événements Pris en Charge
batch.completed
batch.completed
Déclenché lorsqu’un lot termine son traitement (tous les éléments terminés ou échoués).
crawl.completed
crawl.completed
Déclenché lorsqu’un crawl se termine et que toutes les pages découvertes ont été traitées.
Configuration des Webhooks
Passezwebhook lors de la création d’une ressource. Cette URL reçoit la notification de fin.
Nom du paramètre : Le paramètre canonique est
webhook. Pour la compatibilité ascendante, webhook_url est également accepté comme alias.Charge Utile du Webhook
Toutes les charges utiles des webhooks suivent une structure d’enveloppe unifiée :Champs de l’Enveloppe
| Champ | Description |
|---|---|
id | ID de l’événement — identique pour toutes les tentatives de réessai |
object | Type d’événement (par ex., event.batch.completed) |
timestamp | Quand cette tentative de livraison a été envoyée (epoch ms) |
delivery_attempt | Tentative actuelle / tentatives max (par ex., 1/5, 3/5) |
data | Les données réelles de la ressource (même format que la réponse API) |
Comportement de Réessai
Les livraisons de webhooks échouées sont automatiquement réessayées avec un backoff exponentiel sur une fenêtre de 30 minutes :| Tentative | Délai avant la tentative | Temps cumulé |
|---|---|---|
| 1 | Immédiat | 0 min |
| 2 | ~2 min | ~2 min |
| 3 | ~4 min | ~6 min |
| 4 | ~7 min | ~13 min |
| 5 | ~15 min | ~28 min |
Délai d’attente par requête : 30 secondes
Ce qui Compte comme un Succès
Votre point de terminaison doit renvoyer un code d’état2xx dans les 30 secondes. Toute autre réponse déclenche un réessai.
| Réponse | Résultat |
|---|---|
200 OK | ✅ Livré |
201 Created | ✅ Livré |
301 Redirect | ❌ Réessayer (nous ne suivons pas les redirections) |
400 Bad Request | ❌ Réessayer |
500 Server Error | ❌ Réessayer |
| Timeout (>30s) | ❌ Réessayer |
| Connexion refusée | ❌ Réessayer |
Bonnes Pratiques
Répondez rapidement, traitez en asynchrone
Répondez rapidement, traitez en asynchrone
Retournez
200 OK immédiatement et traitez le webhook de manière asynchrone. Si votre traitement prend plus de 30 secondes, nous réessayerons — ce qui entraînera des livraisons en double.Implémentez des gestionnaires idempotents
Implémentez des gestionnaires idempotents
Utilisez le champ
id pour dédupliquer. Stockez les IDs d’événements traités et ignorez les doublons.Enregistrez les réceptions de webhooks
Enregistrez les réceptions de webhooks
Enregistrez toutes les réceptions de webhooks pour le débogage. Incluez l’ID de l’événement, l’horodatage et le résultat du traitement.
Utilisez des points de terminaison HTTPS
Utilisez des points de terminaison HTTPS
Utilisez toujours HTTPS pour les points de terminaison des webhooks. Les points de terminaison HTTP sont vulnérables à l’écoute clandestine et aux attaques de type man-in-the-middle.
Dépannage
Ne pas recevoir de webhooks
Ne pas recevoir de webhooks
- Vérifiez que le paramètre
webhooka été inclus dans votre requête - Vérifiez que votre point de terminaison est publiquement accessible (pas localhost)
- Consultez les journaux de votre serveur pour les requêtes entrantes
- Assurez-vous de renvoyer un code d’état
2xx
Recevoir des webhooks en double
Recevoir des webhooks en double
Cela est attendu lors des réessais. Implémentez une gestion idempotente en utilisant le champ
id :Webhooks expirant
Webhooks expirant
Votre point de terminaison doit répondre dans les 30 secondes. Traitez les webhooks de manière asynchrone :
À Venir
URL par Défaut pour l'Équipe
Configurez une URL de webhook par défaut dans les paramètres de votre compte. Toutes les requêtes utiliseront cette URL sauf si elle est remplacée.
Vérification de Signature
Signatures cryptographiques (HMAC-SHA256) pour vérifier que les charges utiles des webhooks proviennent d’Olostep.
Vous souhaitez un accès anticipé à ces fonctionnalités ? Contactez-nous à info@olostep.com ou rejoignez notre communauté Slack.