Terminez d'abord "Leçon 1 : Fondamentaux de REST et HTTP" pour débloquer cette leçon.Aller à la leçon précédente

Introduction

Avant de pouvoir construire une API REST, vous avez besoin d'une base de projet fonctionnelle. Cette leçon parcourt chaque étape : initialiser un projet Node.js, installer Express, écrire un serveur minimal et confirmer qu'il fonctionne réellement. À la fin, vous disposerez d'un serveur en cours d'exécution qui répond aux requêtes HTTP — la base sur laquelle chaque leçon suivante s'appuiera.

Ceci suppose que Node.js (v18 ou ultérieure) et npm sont déjà installés sur votre machine. Exécutez ces deux commandes pour vérifier avant de continuer :

bash
node --version
npm --version

Si l'une des commandes renvoie une erreur, téléchargez Node.js depuis nodejs.org (npm est fourni avec).

Initialisation du projet

Créez un nouveau répertoire pour votre projet et initialisez-le comme un package Node.js. La commande init génère un fichier package.json, qui suit les métadonnées et les dépendances de votre projet.

bash
mkdir my-rest-api
cd my-rest-api
npm init -y

Le flag -y accepte toutes les valeurs par défaut afin que vous ne soyez pas invité à saisir le nom du projet, la version, etc. Vous pouvez modifier package.json manuellement à tout moment. À ce stade, votre répertoire ne contient que ce seul fichier — pas encore de code.

Ensuite, installez Express :

bash
npm install express

Ceci télécharge Express et ses dépendances dans un dossier node_modules et enregistre la dépendance dans package.json sous "dependencies". Vous verrez également la création d'un package-lock.json — celui-ci verrouille les versions exactes des dépendances afin que chaque développeur de votre équipe installe des packages identiques.

diagramme montrant 3 étapes : npm init crée package.json, npm install express ajoute Express à node_modules et met à jour les dépendances de package.json, puis server.js importe Express pour créer l'app

Construction du premier serveur

Créez un fichier nommé server.js à la racine du projet. Ce fichier est le point d'entrée de votre application.

javascript
const express = require('express');
const app = express();
const PORT = 3000;
app.get('/', (req, res) => {
res.json({ message: 'Server is running' });
});
app.listen(PORT, () => {
console.log(`Server listening on http://localhost:${PORT}`);
});

Parcourons chaque partie : require('express') importe le framework. L'appel à express() crée une instance d'application stockée dans app. app.get() enregistre un gestionnaire de route — le premier argument est le chemin de l'URL, le second est une fonction de rappel qui reçoit l'objet requête (req) et l'objet réponse (res). res.json() envoie une réponse JSON et définit l'en-tête Content-Type automatiquement. Enfin, app.listen() lie le serveur à un port et commence à accepter les connexions.

Démarrez le serveur :

bash
node server.js

Vous devriez voir le message dans la console. Ouvrez un navigateur à l'adresse http://localhost:3000 ou utilisez curl :

bash
curl http://localhost:3000

Sortie attendue :

json
{"message": "Server is running"}

Amélioration du flux de développement

Redémarrer le serveur manuellement après chaque modification de code est fastidieux. Installez nodemon comme dépendance de développement — il surveille vos fichiers et redémarre automatiquement lorsqu'il détecte des changements.

bash
npm install --save-dev nodemon

Ajoutez ensuite un script dev à package.json :

json
{
"scripts": {
"start": "node server.js",
"dev": "nodemon server.js"
}
}

Lancez maintenant le serveur en mode développement :

bash
npm run dev

Modifiez server.js, enregistrez, et nodemon redémarre le processus sans que vous ayez quoi que ce soit à faire. Le script start reste pour une utilisation en production, où nodemon n'est pas approprié.

Une dernière amélioration : analysez les corps de requêtes JSON entrantes. Express ne le fait pas par défaut. Ajoutez cette ligne de middleware avant vos routes :

javascript
app.use(express.json());

Sans cela, req.body sera undefined lorsqu'un client envoie une requête POST avec un payload JSON. L'ajouter maintenant évitera des confusions de débogage plus tard.

Résumé

Vous disposez maintenant d'un projet Express entièrement fonctionnel : un package.json qui suit les dépendances, Express installé, un server.js qui écoute sur le port 3000, une route GET fonctionnelle, nodemon pour une itération rapide, et l'analyse des corps JSON activée. C'est exactement le squelette utilisé comme point de départ pour chaque pattern d'API REST couvert dans la suite du cours. La prochaine leçon aborde le routage — définir plusieurs endpoints et les organiser proprement à mesure que l'API grandit.