Gratias Technology

Node.jsExpressAPIJWT

Créer une API REST avec Node.js et Express

Tutoriel step-by-step pour construire une API REST robuste avec authentification JWT et validation des données.

Déo Gratias
20 min

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 :

bash
mkdir api-rest-node
cd api-rest-node
npm init -y
npm install express

3. Hello World avec Express

javascript
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).

javascript
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

  1. Validation des données : utiliser Joi ouexpress-validator.
  2. Connexion à une base de données : MongoDB, PostgreSQL, MySQL…
  3. Authentification : mettre en place JWT ou OAuth2.
  4. 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.