Testare le API con Postman
Prima di iniziare: le parole della lezione
- Client HTTP e collection
- Un client HTTP invia richieste a un server. Una collection raccoglie richieste salvate e riutilizzabili per uno stesso progetto.
- Body raw ed environment
- Raw indica un body scritto direttamente come testo. Un environment contiene variabili, come la base URL, da riutilizzare nelle richieste.
- Asserzione e regressione
- Un’asserzione confronta un risultato con un’aspettativa. Un test di regressione controlla che una modifica non rompa comportamenti che funzionavano.
Postman è un client HTTP grafico, comodo per provare GET/POST/PUT/DELETE, header e JSON. Non è obbligatorio: puoi ottenere test riproducibili anche con curl.
# recuperare tutte le persone
curl -i http://localhost:3000/api/persone
# inviare dati JSON
curl -i -X POST http://localhost:3000/api/persone \
-H "Content-Type: application/json" \
-d '{"nome":"Giulia"}'
Esempio aggiuntivo: verifica non solo il contenuto ma anche lo status HTTP. Se la creazione riesce, il server dovrebbe restituire 201; se manca nome, 400. Nota: su Windows PowerShell curl può avere comportamenti diversi in base alla versione e agli alias; usa curl.exe se necessario.
Chi fa cosa, e perché
In Postman scegli metodo e URL completo, poi Body → raw → JSON per scrivere il contenuto. Controlla che sia inviato Content-Type: application/json. Premi Send con il server già attivo: Postman non avvia il backend. Nella risposta osserva status, header, body e tempo impiegato.
Per il laboratorio crea richieste separate per elenco, dettaglio, creazione, sostituzione e cancellazione. Salva il nuovo ID restituito dalla POST: i passaggi successivi devono riferirsi a quella risorsa, non presumere che abbia sempre ID 3. Un JSON con success: false e status 200 non equivale a un errore HTTP correttamente descritto.
Un altro esempio guidato
# PowerShell: dopo aver avviato l'API del laboratorio
$base = 'http://localhost:3000/api/persone'
$body = @{ nome = 'Giulia'; ruolo = 'analista' } | ConvertTo-Json
$creata = Invoke-RestMethod -Method Post -Uri $base -ContentType 'application/json' -Body $body
$creata.id
Invoke-RestMethod -Method Get -Uri "$base/$($creata.id)"
Come leggerlo e risultato atteso. La prima richiesta crea una persona; il risultato viene deserializzato da PowerShell in $creata. La seconda usa il suo ID per recuperarla. Questi comandi funzionano come alternativa ai comandi curl con continuazioni di riga tipiche di Bash.
Prova tu. Salva una richiesta con nome vuoto e controlla che lo status sia 400. Poi prova a server spento e confronta l’errore di connessione con una risposta 404.