Objectif
Dans ce tutoriel, vous allez construire une API REST complète avec Node.js et Express : routes CRUD, validation, gestion d'erreurs et documentation. À la fin, vous aurez une API prête à être branchée sur n'importe quel frontend.
1. Initialisation du projet
mkdir api-express && cd api-express
npm init -y
npm install express
2. Le serveur de base
const express = require('express');
const app = express();
app.use(express.json());
// Route de test
app.get('/api/health', (req, res) => {
res.json({ status: 'ok', time: new Date().toISOString() });
});
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => console.log('API démarrée sur le port ' + PORT));
3. Le modèle de données
Utilisons un simple tableau en mémoire pour ce tutoriel :
let articles = [
{ id: 1, title: 'Premier article', content: 'Hello Tech237 !' }
];
let nextId = 2;
4. Les routes CRUD
// Lire tous les articles
app.get('/api/articles', (req, res) => res.json(articles));
// Lire un article
app.get('/api/articles/:id', (req, res) => {
const article = articles.find(a => a.id === Number(req.params.id));
if (!article) return res.status(404).json({ error: 'Article introuvable' });
res.json(article);
});
// Créer un article
app.post('/api/articles', (req, res) => {
const { title, content } = req.body;
if (!title || !content) {
return res.status(400).json({ error: 'title et content sont requis' });
}
const article = { id: nextId++, title, content };
articles.push(article);
res.status(201).json(article);
});
// Modifier un article
app.put('/api/articles/:id', (req, res) => {
const article = articles.find(a => a.id === Number(req.params.id));
if (!article) return res.status(404).json({ error: 'Article introuvable' });
Object.assign(article, req.body);
res.json(article);
});
// Supprimer un article
app.delete('/api/articles/:id', (req, res) => {
articles = articles.filter(a => a.id !== Number(req.params.id));
res.status(204).end();
});
5. Tester avec curl
curl -X POST http://localhost:3000/api/articles \
-H "Content-Type: application/json" \
-d '{"title":"Mon premier post","content":"Salut le Cameroun !"}'
Pour aller plus loin
- Ajoutez une validation avec un schéma (Joi ou Zod).
- Connectez une vraie base de données : SQLite (better-sqlite3) ou PostgreSQL.
- Ajoutez l'authentification avec des tokens JWT.
- Documentez avec Swagger/OpenAPI.
Bravo, vous venez de poser les fondations d'une API professionnelle ! 🎉
Le tutoriel le plus clair que j’ai trouvé sur le sujet, bravo ! Est-ce que vous pouvez faire la suite avec l’authentification JWT ?
Merci ! J’ai pu déployer mon API sur mon serveur local en suivant le guide. 😊