Créer une API de webhooks robuste et sécurisée
Un prompt complet pour générer une API de webhooks production-ready avec gestion des abonnements, signatures cryptographiques, retries intelligents et observabilité.
Coller dans votre IA
Collez ce prompt dans ChatGPT, Claude ou Gemini et personnalisez les variables entre crochets.
Tu es un développeur backend senior spécialisé en architecture événementielle. Conçois une API de webhooks complète pour [TYPE_APPLICATION] en utilisant [LANGAGE_ET_FRAMEWORK].
L'API doit inclure :
-
Gestion des abonnements :
- Endpoint CRUD pour enregistrer/modifier/supprimer des webhooks
- Validation de l'URL de destination (DNS resolution, blocage des IPs privées)
- Support de filtrage par type d'événement
- Stockage des abonnements avec statut actif/inactif/suspendu
-
Dispatch des événements :
- File d'attente asynchrone pour l'envoi (Redis, RabbitMQ ou équivalent)
- Payload JSON standardisé avec : id unique, timestamp, type d'événement, données, version du schema
- Envoi concurrent avec limite de débit configurable par subscriber
-
Sécurité :
- Signature HMAC-SHA256 des payloads (header X-Webhook-Signature)
- Secret unique par abonnement, généré côté serveur
- Endpoint de vérification (challenge/response) à l'enregistrement
- Rate limiting par IP et par subscriber
- Blocage des destinations vers des réseaux internes (SSRF protection)
-
Fiabilité et retries :
- Stratégie de retry avec backoff exponentiel ([NOMBRE_RETRIES] tentatives max)
- Timeouts configurables par requête (défaut : 10 secondes)
- Circuit breaker : désactivation automatique après [SEUIL_ECHECS] échecs consécutifs
- Notification à l'admin quand un webhook est suspendu
-
Observabilité :
- Logging structuré de chaque tentative (statut HTTP, latence, erreur)
- Table d'historique des livraisons consultable via API
- Dashboard endpoint avec métriques : taux de succès, latence P50/P95/P99, webhooks actifs
-
API endpoints :
- POST /webhooks — créer un abonnement
- GET /webhooks — lister les abonnements
- GET /webhooks/:id — détail d'un abonnement
- PUT /webhooks/:id — modifier
- DELETE /webhooks/:id — supprimer
- GET /webhooks/:id/deliveries — historique des livraisons
- POST /webhooks/:id/test — envoyer un événement de test
- GET /webhooks/events — lister les types d'événements disponibles
Fournis le code complet avec : modèles de données (schéma SQL ou ORM), routes, middleware d'authentification, service de dispatch, worker de file d'attente, et tests unitaires pour les fonctions critiques (signature, retry logic, validation URL). Ajoute des commentaires expliquant les choix d'architecture.
Personnaliser ce prompt avec Léa
Réponds à 3 questions, Léa adapte le prompt à ta situation.
Pourquoi ce prompt fonctionne
<p>Ce prompt guide l'IA pour produire une <strong>API de webhooks de niveau production</strong>. Il couvre les six piliers essentiels : gestion des abonnements, dispatch asynchrone, sécurité, fiabilité, observabilité et design d'API REST. Chaque section est suffisamment détaillée pour éviter les implémentations superficielles.</p><p>Les variables <strong>[TYPE_APPLICATION]</strong> et <strong>[LANGAGE_ET_FRAMEWORK]</strong> permettent d'adapter le résultat à votre contexte exact — qu'il s'agisse d'un SaaS en Node.js/Express, d'une marketplace en Python/FastAPI ou d'une app en Go/Gin. Les variables <strong>[NOMBRE_RETRIES]</strong> et <strong>[SEUIL_ECHECS]</strong> ajustent la politique de fiabilité selon vos contraintes.</p><p>Pour de meilleurs résultats, précisez votre base de données (PostgreSQL, MySQL), votre système de file d'attente préféré, et si vous avez besoin d'une <strong>authentification spécifique</strong> (API key, OAuth, JWT). Vous pouvez aussi demander des variantes : version serverless, intégration avec un cloud provider, ou ajout de fonctionnalités comme le <strong>fan-out</strong> vers plusieurs destinations ou le <strong>replay</strong> d'événements passés.</p>
Cas d'usage
Résultat attendu
Code source complet d'une API de webhooks avec modèles de données, routes REST, service de dispatch asynchrone, worker de retry, middleware de sécurité et tests unitaires, accompagné de commentaires sur les choix d'architecture.
Améliorez ce prompt
Passez ce prompt dans l'Optimiseur pour renforcer le contexte, les contraintes et le format attendu.
Améliore ce prompt avec l'OptimiseurCommentaires
Sois le premier à commenter ce prompt.
Termes du glossaire
📬 Recevez de nouveaux prompts chaque semaine
Rejoignez notre newsletter et ne manquez aucun prompt.
Pour aller plus loin
Prompts similaires
Écrire des tests d'intégration pour une API
Créez des tests d'intégration API complets avec setup de base de données, authentification, CRUD et scénarios end-to-end.
Prompt Sora pour refactorer du code
La refactorisation de code est une étape cruciale du cycle de développement logiciel, visant à améliorer la structure interne d'un programme sans modifier son comportement externe. Avec l'émergence des modèles d'intelligence artificielle générative comme Sora d'OpenAI, de nouvelles approches voient le jour pour assister les développeurs dans cette tâche complexe. Sora, grâce à sa compréhension contextuelle avancée, peut analyser des blocs de code existants et proposer des restructurations intelligentes qui respectent les bonnes pratiques de programmation. Que vous cherchiez à éliminer du code dupliqué, à simplifier des fonctions trop longues, à appliquer des design patterns reconnus ou à améliorer la lisibilité générale de votre base de code, un prompt bien construit permet d'obtenir des suggestions de refactorisation pertinentes et immédiatement applicables. L'enjeu principal réside dans la formulation précise de votre demande : plus vous fournissez de contexte sur l'architecture existante, les contraintes techniques et les objectifs de qualité, plus les résultats seront exploitables. Ce guide vous propose des prompts optimisés pour tirer le meilleur parti de Sora dans vos projets de refactorisation, quel que soit votre niveau d'expertise.
Distributed tracing avec OpenTelemetry
Implémenter le tracing distribué
Architecture multi-environnements Terraform
Gérer plusieurs environnements avec Terraform