Comment écrire une API REST en JavaScript en 30 minutes

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course
```html

Introduction : REST API en JavaScript — rapide et simple

Le développement web moderne est impensable sans API. REST (Representational State Transfer) est le style architectural le plus populaire pour créer des services web. Si vous souhaitez créer rapidement un backend pour votre application ou apprendre les bases du développement serveur, Node.js et Express sont le choix idéal.

Dans cet article, nous allons écrire en 30 minutes une API REST complète en JavaScript. Vous apprendrez à configurer le serveur, organiser les routes (routage), implémenter les opérations CRUD (Create, Read, Update, Delete) et tester l'API avec Postman. Pas de théorie superflue — seulement de la pratique. C'est parti !

1. Préparation de l'environnement et installation des dépendances

Avant d'écrire du code, assurez-vous que Node.js (version 14 ou supérieure) est installé sur votre ordinateur. Vous pouvez le vérifier avec la commande :

node -v
npm -v

Créez un nouveau dossier pour le projet et initialisez package.json :

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

Installons maintenant Express — un framework minimaliste et flexible pour Node.js. Installons également body-parser pour traiter les requêtes JSON (dans les versions modernes d'Express, il est intégré, mais pour plus de clarté, nous l'ajoutons explicitement) :

npm install express body-parser

La structure du projet sera simple :

  • app.js — le fichier principal du serveur
  • routes/ — le dossier contenant les routes
  • data/ — le dossier contenant les données de test (simulation de base de données)

2. Création d'un serveur de base avec Express

Créez le fichier app.js et écrivez le code suivant :

const express = require('express');
const bodyParser = require('body-parser');
const app = express();
const PORT = 3000;

// Middleware pour traiter le JSON
app.use(bodyParser.json());

// Route de test simple
app.get('/', (req, res) => {
    res.send('L\'API REST fonctionne !');
});

// Démarrage du serveur
app.listen(PORT, () => {
    console.log(`Serveur démarré sur http://localhost:${PORT}`);
});

Lancez le serveur avec la commande node app.js et ouvrez http://localhost:3000 dans votre navigateur. Vous devriez voir le message "L'API REST fonctionne !". Félicitations, vous venez de créer votre premier serveur web avec Node.js !

Notez que body-parser convertit les données entrantes au format JSON, ce qui est nécessaire pour les requêtes POST et PUT.

3. Organisation du routage et opérations CRUD

Ajoutons maintenant de vraies données. Créez le dossier data et, à l'intérieur, le fichier items.js avec un tableau de test :

const items = [
    { id: 1, name: 'Apprendre Node.js', completed: false },
    { id: 2, name: 'Écrire une API', completed: true },
    { id: 3, name: 'Publier un article', completed: false }
];

module.exports = items;

Créez le dossier routes et le fichier items.js à l'intérieur. Nous y décrirons toutes les routes pour travailler avec les tâches (to-do list) :

const express = require('express');
const router = express.Router();
let items = require('../data/items');

// GET /api/items — obtenir tous les éléments
router.get('/', (req, res) => {
    res.json(items);
});

// GET /api/items/:id — obtenir un élément par son ID
router.get('/:id', (req, res) => {
    const id = parseInt(req.params.id);
    const item = items.find(i => i.id === id);
    if (!item) return res.status(404).json({ message: 'Élément non trouvé' });
    res.json(item);
});

// POST /api/items — créer un nouvel élément
router.post('/', (req, res) => {
    const newItem = {
        id: items.length + 1,
        name: req.body.name,
        completed: req.body.completed || false
    };
    items.push(newItem);
    res.status(201).json(newItem);
});

// PUT /api/items/:id — mettre à jour un élément
router.put('/:id', (req, res) => {
    const id = parseInt(req.params.id);
    const item = items.find(i => i.id === id);
    if (!item) return res.status(404).json({ message: 'Élément non trouvé' });
    item.name = req.body.name || item.name;
    item.completed = req.body.completed !== undefined ? req.body.completed : item.completed;
    res.json(item);
});

// DELETE /api/items/:id — supprimer un élément
router.delete('/:id', (req, res) => {
    const id = parseInt(req.params.id);
    const index = items.findIndex(i => i.id === id);
    if (index === -1) return res.status(404).json({ message: 'Élément non trouvé' });
    items.splice(index, 1);
    res.status(204).send();
});

module.exports = router;
```

Blogs

Book Recommendations