# API Documentation - SEO Generator Server ## 🚀 Endpoints API Disponibles ### Base URL ``` http://localhost:3002/api ``` --- ## 📝 GESTION ARTICLES ### GET /api/articles Récupère la liste des articles générés. **Query Parameters:** - `limit` (optional): Nombre d'articles à retourner (défaut: 50) - `offset` (optional): Position de départ (défaut: 0) - `project` (optional): Filtrer par projet - `status` (optional): Filtrer par statut **Response:** ```json { "success": true, "data": { "articles": [...], "total": 150, "limit": 50, "offset": 0 }, "timestamp": "2025-09-16T00:00:00.000Z" } ``` ### GET /api/articles/:id Récupère un article spécifique. **Query Parameters:** - `format` (optional): Format de réponse (`json`, `html`, `text`) **Response:** ```json { "success": true, "data": { "id": "article_123", "content": "...", "metadata": {...} }, "timestamp": "2025-09-16T00:00:00.000Z" } ``` ### POST /api/articles Crée un nouvel article. **Request Body:** ```json { "keyword": "plaque personnalisée", "project": "client_xyz", "config": { "selectiveStack": "standardEnhancement", "adversarialMode": "light", "humanSimulationMode": "none", "patternBreakingMode": "none" }, "personalityPreference": { "nom": "Marc", "style": "professionnel" } } ``` **Response:** ```json { "success": true, "data": { "id": "article_456", "article": {...}, "config": {...} }, "message": "Article créé avec succès", "timestamp": "2025-09-16T00:00:00.000Z" } ``` --- ## 📁 GESTION PROJETS ### GET /api/projects Récupère la liste des projets. **Response:** ```json { "success": true, "data": { "projects": [...], "total": 25 }, "timestamp": "2025-09-16T00:00:00.000Z" } ``` ### POST /api/projects Crée un nouveau projet. **Request Body:** ```json { "name": "Projet Client XYZ", "description": "Génération de contenu SEO pour le client XYZ", "config": { "defaultPersonality": "Marc", "selectiveStack": "fullEnhancement" } } ``` **Response:** ```json { "success": true, "data": { "id": "project_789", "name": "Projet Client XYZ", "description": "...", "config": {...}, "createdAt": "2025-09-16T00:00:00.000Z", "articlesCount": 0 }, "message": "Projet créé avec succès" } ``` --- ## 📋 GESTION TEMPLATES ### GET /api/templates Récupère la liste des templates XML. **Response:** ```json { "success": true, "data": { "templates": [...], "total": 12 }, "timestamp": "2025-09-16T00:00:00.000Z" } ``` ### POST /api/templates Crée un nouveau template. **Request Body:** ```json { "name": "Template Article Blog", "content": "...", "description": "Template pour articles de blog SEO", "category": "blog" } ``` **Response:** ```json { "success": true, "data": { "id": "template_101", "name": "Template Article Blog", "content": "...", "description": "...", "category": "blog", "createdAt": "2025-09-16T00:00:00.000Z" }, "message": "Template créé avec succès" } ``` --- ## ⚙️ CONFIGURATION ### GET /api/config/personalities Récupère la configuration des personnalités. **Response:** ```json { "success": true, "data": { "personalities": [ { "nom": "Marc", "style": "professionnel et précis", "description": "...", "connecteurs": ["par ailleurs", "en effet"] } ], "total": 15 }, "timestamp": "2025-09-16T00:00:00.000Z" } ``` --- ## 📊 MONITORING ### GET /api/health Health check du système. **Response:** ```json { "success": true, "data": { "status": "healthy", "timestamp": "2025-09-16T00:00:00.000Z", "version": "1.0.0", "uptime": 3600, "memory": {...}, "environment": "development" } } ``` ### GET /api/metrics Métriques système et statistiques. **Response:** ```json { "success": true, "data": { "articles": { "total": 1250, "recent": 45 }, "projects": { "total": 25 }, "templates": { "total": 12 }, "system": { "uptime": 3600, "memory": {...}, "platform": "linux", "nodeVersion": "v24.3.0" } }, "timestamp": "2025-09-16T00:00:00.000Z" } ``` --- ## 🎭 ENDPOINTS EXISTANTS (Compatibilité) ### GET /api/status Statut du serveur. ### GET /api/personalities Liste des personnalités (legacy). ### POST /api/generate-simple Génération simple avec mot-clé. ### POST /api/test-modulaire Test modulaire individuel. ### POST /api/workflow-modulaire Workflow complet modulaire. ### POST /api/benchmark-modulaire Benchmark des stacks. --- ## 🔧 Configuration par Défaut ### Stacks Selective Enhancement - `lightEnhancement` - `standardEnhancement` - `fullEnhancement` - `creativeEnhancement` - `adaptive` ### Modes Adversarial - `none` - `light` - `standard` - `heavy` - `adaptive` ### Modes Human Simulation - `none` - `lightSimulation` - `standardSimulation` - `heavySimulation` - `personalityFocus` - `adaptive` ### Modes Pattern Breaking - `none` - `syntaxFocus` - `connectorsFocus` - `structureFocus` - `styleFocus` - `comprehensiveFocus` - `adaptive` --- ## 🚨 Gestion d'Erreurs Toutes les erreurs retournent un format standard : ```json { "success": false, "error": "Description de l'erreur", "message": "Message détaillé", "timestamp": "2025-09-16T00:00:00.000Z" } ``` ### Codes d'Erreur - `400`: Bad Request - Paramètres invalides - `404`: Not Found - Ressource non trouvée - `500`: Internal Server Error - Erreur serveur --- ## 📝 Exemples d'Utilisation ### Créer un article simple ```bash curl -X POST http://localhost:3002/api/articles \ -H "Content-Type: application/json" \ -d '{ "keyword": "plaque personnalisée", "project": "test", "config": { "selectiveStack": "standardEnhancement", "adversarialMode": "light" } }' ``` ### Récupérer les métriques ```bash curl http://localhost:3002/api/metrics ``` ### Créer un projet ```bash curl -X POST http://localhost:3002/api/projects \ -H "Content-Type: application/json" \ -d '{ "name": "Mon Projet SEO", "description": "Projet de test" }' ``` --- ## 🔄 Intégration avec Google Sheets L'API utilise automatiquement l'intégration Google Sheets pour : - Récupérer les données de lignes spécifiques - Charger les 15 personnalités disponibles - Sauvegarder les articles générés - Maintenir la cohérence des données