Module 4 — Débogage d'API et Backend
Menez des investigations approfondies sur les architectures API et backend : diagnostiquez les codes d'état HTTP, les blocages CORS et les défaillances de charge utile. Utilisez Postman et curl pour isoler les pannes réseau, interceptez les flux avec des proxys et sécurisez la communication client-serveur de bout en bout.
1 Comprendre le fonctionnement des requêtes HTTP
Trajet d'une communication HTTP (React → Express → MySQL), anatomie des requêtes et réponses, méthodes GET/POST/PUT/PATCH/DELETE et diagnostic réseau.
2 Diagnostic des codes de statut HTTP : 400, 401, 403, 404, 405, 422, 429 et 500
Typologie des statuts HTTP, distinction client vs serveur, détection des 401 vs 403, limitation de débit 429 (rate-limit) et gestion des erreurs 500.
3 Débogage des API REST
Parcours d'une requête REST (route, middleware, contrôleur, service), conversion des paramètres d'URL, Query strings et détection des erreurs logiques.
4 Analyse des requêtes et réponses JSON
Structure JSON stricte, résolution de req.body undefined avec express.json(), cohérence des types et validation défensive des payloads.
5 Débogage des routes Express.js
Conflits d'ordre entre routes spécifiques et dynamiques, modularisation avec express.Router(), pièges de double préfixe et traçage d'URL.
6 Diagnostic des erreurs Middleware
Chaîne des middlewares (req, res, next), oublis de next() provoquant des timeouts, headers already sent, et propagation d'erreurs asynchrones.
7 Analyse des problèmes CORS
Mécanisme Same-Origin, requêtes Preflight OPTIONS, configuration du package cors, gestion des credentials/cookies et décodage des erreurs DevTools.
8 Diagnostic des erreurs d'authentification et d'autorisation
Authentification (401) vs Autorisation (403), anatomie et signature JWT, jwt.verify() vs jwt.decode(), expiration et contrôle de rôles (RBAC).
9 Débogage des connexions MySQL
Pilote mysql2/promise, erreurs ECONNREFUSED et ER_ACCESS_DENIED, dimensionnement du pool de connexions, libération de ressources et phpMyAdmin.
10 Analyse des requêtes SQL et des erreurs de base de données
Diagnostic des codes MySQL (ER_NO_SUCH_TABLE, ER_DUP_ENTRY), contraintes et clés étrangères, requêtes préparées anti-injections et analyse EXPLAIN.
11 Utilisation de Postman pour isoler les problèmes
Isolation du backend sans frontend, configuration de Bearer tokens, environnements et variables {{baseUrl}}, scripts de tests automatisés pm.test.
12 Gestion et centralisation des logs Backend
Logs structurés JSON avec Winston et Pino, middleware global d'erreurs Express, traçabilité des flux via Request ID UUID et règles de sécurité RGPD.
TP Final : Diagnostic complet d'une API Express connectée à MySQL
Atelier intégrateur : audit et correction des 8 défauts du projet TaskFlow (CORS, JWT, SQL, Request ID, Winston, Express, tests Postman).