Restituire JSON (costruire un'API)
Far parlare il tuo server la lingua del web
⏱ Stima ~7 min
01 · Leggi
Finora le tue route usano res.send() per restituire testo semplice. Va bene per messaggi elementari, ma le API vere non restituiscono testo semplice — restituiscono JSON.
Ricordi il JSON del Livello 5? È il formato dati universale del web. Quando il tuo telefono controlla il meteo, quando un sito carica il tuo profilo, quando un'app recupera nuovi post — tutti quei dati viaggiano in JSON.
Express rende tutto questo semplicissimo. Invece di res.send(), usi res.json() e passi un oggetto JavaScript. Express lo converte automaticamente in JSON, aggiunge gli header corretti e fa sapere a browser e app come leggerlo.
Punti chiave
- res.send() restituisce testo semplice
- res.json() restituisce dati JSON — lo standard per le API
- Express gestisce automaticamente la conversione da oggetto JavaScript a JSON
- È così che funziona ogni API che hai usato
02 · Pratica reale
Aggiungi una nuova route JSON al tuo app.js. Questa route restituirà l'orario e la data attuali come dati strutturati. Mettila insieme alle altre route (prima di app.listen()).
app.get('/api/time', (req, res) => {
res.json({
time: new Date().toLocaleTimeString(),
date: new Date().toLocaleDateString()
});
});03 · Quiz
Qual è la differenza tra res.send() e res.json()?
- res.send() è più veloce di res.json()
- res.json() funziona solo con array
- Non c'è differenza
- res.send() restituisce testo semplice, res.json() restituisce dati JSON strutturati
04 · Pratica reale
Ferma il server con Ctrl+C, riavvialo e visita la nuova route nel browser. Dovresti vedere dati JSON con l'orario e la data attuali — non testo semplice, ma dati strutturati con parentesi graffe e coppie chiave-valore.
node app.js
http://localhost:3000/api/time
05 · Completa
Per restituire dati JSON in Express, usa res._____(data) invece di res.send().
06 · Leggi
Il tuo server ora parla JSON — la stessa lingua di ogni API sul web.
Aggiorna la pagina qualche volta. Noti che l'orario cambia ad ogni richiesta? È perché il tuo server riesegue il codice ogni volta che qualcuno si connette all'URL. È dinamico — genera la risposta nel momento attuale.
È la differenza tra un sito statico (il contenuto è sempre lo stesso) e un'API (il contenuto cambia in base ai dati, all'orario, all'utente o a qualsiasi altra cosa).
Ricordi le API e il JSON che hai imparato al Livello 5? Ora sei dall'altra parte di quella conversazione. Non stai solo usando le API — le stai costruendo.
07 · Quiz
Perché l'endpoint /api/time restituisce un orario diverso ogni volta che aggiorni la pagina?
- Il server riesegue new Date() ad ogni richiesta, quindi restituisce sempre l'orario attuale
- Il browser mette in cache versioni diverse della pagina
- Express genera timestamp casuali per ogni risposta
- Il formato JSON aggiorna automaticamente i timestamp
Altre lezioni di questo capitolo
⚠ L'esperienza interattiva completa richiede JavaScript. Attivalo e ricarica la pagina.
※ Questo è un progetto educativo indipendente — non è un prodotto ufficiale di Anthropic. Claude™ è un marchio di Anthropic, PBC.