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 :
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.
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 :
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.
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.
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 :
Vous devriez voir le message dans la console. Ouvrez un navigateur à l'adresse http://localhost:3000 ou utilisez curl :
Sortie attendue :
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.
Ajoutez ensuite un script dev à package.json :
Lancez maintenant le serveur en mode développement :
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 :
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.