Exercice : une petite API Express
Construire une API de gestion de tâches avec routeur, validation, middleware d'authentification et gestion des erreurs.
Place à la pratique : vous allez assembler tout ce que le chapitre a présenté dans une API de gestion de tâches, stockée en mémoire.
Exercice
Créez une API REST /api/taches avec express.Router, validation des entrées, middleware d'authentification, 404 attrape-tout et middleware d'erreur à quatre arguments.
📋 Cahier des charges
Mise en place
Initialisez le projet, installez express et dotenv, créez src/app.js et src/server.js. Le port vient de process.env.PORT.
Routeur des tâches
Dans src/routes/taches.routes.js, montez sur /api/taches :
GET /: liste, filtrable par?faite=true;GET /:id: une tâche, ou 404 ;POST /: création, réponse 201 ;PATCH /:id: bascule le statut ;DELETE /:id: suppression, réponse 204 (protégée par authentification).
Validation
Un POST sans titre (ou avec un titre vide) doit renvoyer 400 avec un message clair.
Authentification
Un middleware authentifier exige un en-tête Authorization: Bearer abc123 et répond 401 sinon.
Erreurs
Un middleware 404 attrape-tout, puis un middleware d'erreur à quatre arguments qui formate toutes les réponses d'erreur en JSON.
🧪 Tests attendus
curl http://localhost:3000/api/taches
curl -X POST http://localhost:3000/api/taches -H "Content-Type: application/json" -d '{"titre":"Réviser Express"}'
curl -X DELETE http://localhost:3000/api/taches/1
curl -X DELETE http://localhost:3000/api/taches/1 -H "Authorization: Bearer abc123"
curl http://localhost:3000/inconnuCode à compléter (onglets)
L'éditeur propose un onglet par fichier attendu (nommés à l'avance). Complétez-les
dans l'ordre du cahier des charges. La validation automatique ne porte que sur
src/routes/taches.helpers.js (les fonctions pures testables sans serveur) ; le reste
se vérifie en lançant l'API (npm run dev) et en envoyant les requêtes du cahier des charges.
🧱 Consigne — structure attendue du projet
Le composant interactif ci-dessus contient un onglet par fichier à compléter. Utilisez cette structure pour organiser votre projet :
Chaque fichier doit conserver une responsabilité claire : le routeur déclare les endpoints, les helpers portent les fonctions pures, les middlewares traitent l'authentification et les erreurs, et app.js assemble l'application.
Quiz du chapitre
Express
Terminez le quiz du chapitre pour le marquer comme complété.
Atelier — monter une API Express pas à pas
Mise en pratique assistée : structurer un routeur express.Router, enchaîner les middlewares et protéger une route avec un middleware d'authentification maison.
Ressources
Documentation officielle, middlewares utiles et pistes pour aller plus loin avec Express.