Servir du JSON (construire une API)
Apprendre à ton serveur à parler la langue du web
⏱ Estim. ~7 min
01 · Lire
Jusqu'ici, tes routes renvoyaient du texte brut avec res.send(). C'est bien pour des messages simples, mais les vraies API ne renvoient pas du texte brut — elles renvoient du JSON.
Tu te souviens du JSON au Level 5 ? C'est le format de données universel du web. Quand ton téléphone vérifie la météo, qu'un site charge ton profil ou qu'une app récupère de nouveaux posts — toutes ces données circulent en JSON.
Express rend ça hyper simple. Au lieu de res.send(), tu utilises res.json() et tu passes un objet JavaScript. Express le convertit automatiquement en JSON et ajoute les bons headers pour que les navigateurs et les apps sachent comment le lire.
Points clés
- res.send() renvoie du texte brut
- res.json() renvoie des données JSON — le standard pour les API
- Express gère la conversion d'objet JavaScript en JSON automatiquement
- C'est comme ça que fonctionnent toutes les API que tu as utilisées
02 · Pratique réelle
Ajoute une nouvelle route JSON dans ton app.js. Cette route renvoie l'heure et la date actuelles sous forme de données structurées. Mets-la avec tes autres routes (avant app.listen()).
app.get('/api/time', (req, res) => {
res.json({
time: new Date().toLocaleTimeString(),
date: new Date().toLocaleDateString()
});
});03 · Quiz
Quelle est la différence entre res.send() et res.json() ?
- res.send() est plus rapide que res.json()
- res.json() ne marche qu'avec des tableaux
- Aucune différence
- res.send() renvoie du texte brut, res.json() renvoie des données JSON structurées
04 · Pratique réelle
Arrête le serveur avec Ctrl+C, redémarre-le, puis visite la nouvelle route dans ton navigateur. Tu devrais voir des données JSON avec l'heure et la date actuelles — pas du texte brut, mais des données structurées avec des accolades et des paires clé-valeur.
node app.js
http://localhost:3000/api/time
05 · Compléter
Pour renvoyer des données JSON dans Express, utilise res._____() au lieu de res.send().
06 · Lire
Ton serveur parle JSON maintenant — la même langue que toutes les API du web.
Recharge la page plusieurs fois. Tu remarques que l'heure change à chaque requête ? C'est parce que ton serveur réexécute le code chaque fois que quelqu'un visite l'URL. Il est dynamique — il génère sa réponse en fonction du moment présent.
C'est la différence entre un site statique (le contenu est toujours le même) et une API (le contenu change en fonction des données, du temps, de l'utilisateur, ou de n'importe quoi).
Tu te souviens d'avoir appris les API et le JSON au Level 5 ? Tu es maintenant de l'autre côté de la conversation. Tu n'utilises plus seulement des API — tu fabriques des API.
07 · Quiz
Pourquoi l'endpoint /api/time renvoie une heure différente à chaque rafraîchissement ?
- Le serveur réexécute new Date() à chaque requête, donc il renvoie toujours l'heure courante
- Le navigateur met en cache différentes versions de la page
- Express génère un timestamp aléatoire pour chaque réponse
- Le format JSON met à jour les timestamps automatiquement
Autres leçons de ce chapitre
⚠ L'expérience interactive complète nécessite JavaScript. Active-le et recharge la page.
※ Ce site est un projet éducatif indépendant — pas un produit officiel d'Anthropic. Claude™ est une marque déposée d'Anthropic, PBC.