Blog API — Architecture Modulaire
Une API REST complète organisée avec express.Router() — 3 ressources, 3 fichiers de routes séparés.
Endpoints disponibles
| Méthode | URL | Description | Status |
|---|---|---|---|
| GET | /api/articles | Liste tous les articles | 200 |
| GET | /api/articles/:id | Un article | 200 / 404 |
| POST | /api/articles | Créer un article | 201 / 400 |
| PUT | /api/articles/:id | Modifier un article | 200 / 404 |
| DELETE | /api/articles/:id | Supprimer un article | 204 / 404 |
| GET | /api/users | Liste tous les utilisateurs | 200 |
| GET | /api/users/:id | Un utilisateur | 200 / 404 |
| POST | /api/users | Créer un utilisateur | 201 / 400 / 409 |
| PUT | /api/users/:id | Modifier un utilisateur | 200 / 404 |
| DELETE | /api/users/:id | Supprimer un utilisateur | 204 / 404 |
| GET | /api/comments | Liste les commentaires (?articleId=) | 200 |
| POST | /api/comments | Créer un commentaire | 201 / 400 |
| DELETE | /api/comments/:id | Supprimer un commentaire | 204 / 404 |
Lancer le projet
# 1. Installer les dépendances
npm install
# 2. Démarrer le serveur
npm run dev # Avec rechargement automatique (nodemon)
# ou
npm start # Sans rechargement automatique
# Le serveur démarre sur http://localhost:3000
# 3. Tester avec curl
curl http://localhost:3000/api/articles
curl http://localhost:3000/api/users
curl -X POST http://localhost:3000/api/articles \
-H "Content-Type: application/json" \
-d '{"title":"Nouveau","content":"Contenu","authorId":1}'
Structure du projet
mini-projet/
├── server.js ← Point d'entrée — monte les routeurs
├── package.json
└── routes/
├── articles.js ← Routeur articles (CRUD)
├── users.js ← Routeur utilisateurs (CRUD)
└── comments.js ← Routeur commentaires
server.js — Point d'entrée
Chargement...
routes/articles.js
Chargement...