Créer une API REST avec Node.js et Express : Le Guide Ultime
Les API REST sont au cœur du web moderne. Elles permettent à des applications différentes de communiquer entre elles : site web, mobile, IoT… Avec Node.js et Express, il est possible de construire une API rapide, flexible et scalable en un temps record. Voici le guide ultime pour 2025.
1. Qu’est-ce qu’une API REST ?
Une API REST (Representational State Transfer) est une interface qui expose desendpoints pour effectuer des opérations CRUD (Create,Read, Update, Delete). Elle repose sur les méthodes HTTP (GET, POST, PUT, DELETE) et échange des données au format JSON.
2. Installation de Node.js et Express
Avant de commencer, assurez-vous d’avoir installé Node.js (v18+ recommandé en 2025). Ensuite, créez un projet et installez Express :
mkdir api-rest-node
cd api-rest-node
npm init -y
npm install express3. Hello World avec Express
const express = require('express');
const app = express();
const port = 3000;
// Middleware pour parser le JSON
app.use(express.json());
app.get('/', (req, res) => {
res.send('Bienvenue dans mon API REST !');
});
app.listen(port, () => {
console.log(`Serveur démarré sur http://localhost:${port}`);
});Lancez votre serveur avec node index.js et ouvrezhttp://localhost:3000.
4. Création d’un CRUD simple
Imaginons une API pour gérer une liste d’articles (blog).
let articles = [
{ id: 1, titre: "Introduction à Node.js" },
{ id: 2, titre: "Express pour les débutants" }
];
// Lire tous les articles
app.get('/articles', (req, res) => {
res.json(articles);
});
// Lire un article par ID
app.get('/articles/:id', (req, res) => {
const article = articles.find(a => a.id == req.params.id);
article ? res.json(article) : res.status(404).send("Article non trouvé");
});
// Créer un nouvel article
app.post('/articles', (req, res) => {
const newArticle = { id: articles.length + 1, ...req.body };
articles.push(newArticle);
res.status(201).json(newArticle);
});
// Mettre à jour un article
app.put('/articles/:id', (req, res) => {
const index = articles.findIndex(a => a.id == req.params.id);
if (index !== -1) {
articles[index] = { id: parseInt(req.params.id), ...req.body };
res.json(articles[index]);
} else {
res.status(404).send("Article non trouvé");
}
});
// Supprimer un article
app.delete('/articles/:id', (req, res) => {
articles = articles.filter(a => a.id != req.params.id);
res.status(204).send();
});5. Améliorer son API
- Validation des données : utiliser
Joiouexpress-validator. - Connexion à une base de données : MongoDB, PostgreSQL, MySQL…
- Authentification : mettre en place JWT ou OAuth2.
- Structurer le projet : séparer routes, contrôleurs, modèles.
Bonnes pratiques
- Utilisez des middlewares pour gérer erreurs et logs. - Versionnez votre API (/api/v1). - Documentez avec Swagger ou OpenAPI. - Ajoutez des tests unitaires (Jest, Mocha).
6. Déploiement en 2025
Les solutions modernes pour déployer une API REST incluent : - Docker pour la containerisation. - Railway, Render ou Heroku (simples). - AWS Lambda ou Vercel pour une approche serverless.
Conclusion
Construire une API REST avec Node.js et Express est simple, rapide et puissant. Ce guide vous a montré les bases : installation, création d’un CRUD, bonnes pratiques et déploiement. À partir d’ici, vous pouvez étendre votre API en ajoutant une base de données, une authentification et une architecture scalable.