Introduction : REST API en une demi-heure, c'est réalisable
REST API est le fondement de l'interaction web moderne. Que vous soyez un développeur frontend souhaitant comprendre le backend, ou un débutant voulant créer rapidement son premier serveur, ce guide est pour vous. Nous allons voir comment écrire un REST API complet en JavaScript (Node.js) en seulement 30 minutes.
Nous utilisons une stack minimale : Node.js et Express.js — le framework le plus populaire pour créer des API. Pas de code superflu, que de la pratique. À la fin de cet article, vous aurez un serveur fonctionnel avec des opérations CRUD (création, lecture, mise à jour, suppression).
Étape 1 : Préparation et installation des dépendances
Pour commencer, assurez-vous d'avoir Node.js installé (version 14 ou supérieure). Vous pouvez le télécharger depuis le site officiel. Vérifiez l'installation :
node -vnpm -vCréez un dossier pour le projet et placez-vous dedans :
mkdir my-rest-apicd my-rest-apiInitialisez le projet et installez Express :
npm init -ynpm install expressPour plus de commodité, installons nodemon — il redémarre automatiquement le serveur lors des modifications du code :
npm install --save-dev nodemonOuvrez maintenant package.json et remplacez la section "scripts" par :
"scripts": { "start": "node index.js", "dev": "nodemon index.js"}Parfait ! Tout est prêt pour écrire le code.
Étape 2 : Écrire le serveur de base et le premier point de terminaison
Créez un fichier index.js à la racine du projet. Commençons par importer Express et configurer le port :
const express = require('express');const app = express();const PORT = 3000;
// Middleware pour analyser le JSONapp.use(express.json());
// Point de test simpleapp.get('/', (req, res) => { res.send('Mon REST API fonctionne !');});
// Lancement du serveurapp.listen(PORT, () => { console.log(`Serveur démarré sur http://localhost:${PORT}`);});Lancez le serveur avec la commande :
npm run devRendez-vous dans votre navigateur à l'adresse http://localhost:3000 — vous devriez voir le message "Mon REST API fonctionne !".
Ajout d'une simulation de base de données
Pour simplifier, nous allons stocker les données en mémoire (un tableau). Dans un projet réel, vous connecteriez MongoDB ou PostgreSQL, mais pour l'apprentissage cela suffit.
// Simulation de base de donnéeslet users = [ { id: 1, name: 'Alexeï', email: 'alex@example.com' }, { id: 2, name: 'Maria', email: 'maria@example.com' }];let nextId = 3;Étape 3 : Implémentation des opérations CRUD
Créons maintenant des points de terminaison complets pour travailler avec les utilisateurs. Nous allons implémenter les quatre méthodes HTTP principales : GET, POST, PUT, DELETE.
GET — Récupérer tous les utilisateurs
// Récupérer tous les utilisateursapp.get('/api/users', (req, res) => { res.json(users);});
// Récupérer un utilisateur par son IDapp.get('/api/users/:id', (req, res) => { const id = parseInt(req.params.id); const user = users.find(u => u.id === id); if (!user) { return res.status(404).json({ message: 'Utilisateur non trouvé' }); } res.json(user);});POST — Créer un nouvel utilisateur
// Créer un utilisateurapp.post('/api/users', (req, res) => { const { name, email } = req.body; // Validation simple if (!name || !email) { return res.status(400).json({ message: 'Le nom et l\'email sont obligatoires' }); } const newUser = { id: nextId++, name, email }; users.push(newUser); res.status(201).json(newUser);});PUT — Mettre à jour un utilisateur
// Mettre à jour un utilisateurapp.put('/api/users/:id', (req, res) => { const id = parseInt(req.params.id); const { name, email } = req.body;```