Agent de génération automatique de documentation API REST complète
Cet agent analyse votre code source ou vos spécifications d'API pour générer automatiquement une documentation technique complète et structurée. Il produit des descriptions d'endpoints, des schémas de données, des exemples de requêtes/réponses et une gestion des erreurs documentée. Le résultat est prêt à être intégré dans un portail développeur ou exporté au format OpenAPI.
Pour qui
Développeurs backend, tech leads et équipes DevOps qui souhaitent documenter rapidement leurs APIs REST sans rédiger manuellement chaque endpoint.
Entrée
Code source de l'API (fichiers de routes, contrôleurs, modèles, middleware) ou spécification partielle des endpoints à documenter. Formats acceptés : JavaScript/TypeScript (Express, NestJS), Python (FastAPI, Django), PHP (Laravel), Java (Spring Boot), ou toute description textuelle des endpoints.
étapes (4)
Analyse du code source et extraction des endpoints
promptAnalyse le code fourni pour identifier tous les endpoints, méthodes HTTP, paramètres et structures de données.
Génération des descriptions et schémas de données
promptRédige les descriptions fonctionnelles de chaque endpoint et formalise les schémas de données en JSON Schema.
Création des exemples de requêtes et réponses
promptGénère des exemples concrets et réalistes de requêtes cURL et de réponses JSON pour chaque endpoint.
Compilation en document de documentation finale
promptAssemble tous les éléments en un document de documentation complet et structuré, prêt à l'emploi.
Sortie
Documentation API complète incluant : description de chaque endpoint, schémas JSON Schema des requêtes et réponses, exemples cURL et multi-langages, gestion des erreurs, guide d'authentification et modèles de données. Format Markdown ou OpenAPI selon le choix utilisateur.
Exemple
Entrée
// routes/users.js (Express)
router.get('/api/v1/users', authMiddleware, async (req, res) => {
const { page = 1, limit = 20, role } = req.query;
const users = await User.find(role ? { role } : {}).skip((page-1)*limit).limit(limit);
const total = await User.countDocuments(role ? { role } : {});
res.json({ data: users, pagination: { page, limit, total } });
});
router.post('/api/v1/users', authMiddleware, adminOnly, async (req, res) => {
const { email, name, role } = req.body;
if (!email || !name) return res.status(400).json({ error: 'Email and name required' });
const user = await User.create({ email, name, role: role || 'user' });
res.status(201).json({ data: user });
});Sortie
## Utilisateurs (Users)
### GET /api/v1/users
**Liste les utilisateurs** avec pagination et filtrage optionnel par rôle.
- Auth : Bearer token requis
- Query params : page (number, défaut: 1), limit (number, défaut: 20), role (string, optionnel)
- Réponse 200 : { data: User[], pagination: { page, limit, total } }
```curl
curl -H 'Authorization: Bearer eyJhb...' 'https://api.example.com/api/v1/users?page=1&limit=20&role=admin'
```
### POST /api/v1/users
**Crée un nouvel utilisateur.** Réservé aux administrateurs.
- Auth : Bearer token requis + rôle admin
- Body : { email (string, requis), name (string, requis), role (string, défaut: 'user') }
- Réponse 201 : { data: User }
- Erreur 400 : { error: 'Email and name required' }Personnalisation
| Paramètre | Description | Valeur par défaut |
|---|---|---|
| format_sortie | Format du document de documentation final généré par l'agent | Markdown |
| lang | Langue de rédaction de la documentation (français, anglais, etc.) | français |
| lang_sdk | Langage pour les exemples de code SDK côté client | JavaScript (fetch) |