📄 Metodi HTTP
1. Cos'è una RESTful API?
Una RESTful API segue uno stile di design standardizzato che facilita la comunicazione tra diversi sistemi sulla rete. Per aderire ai principi REST, un'API dovrebbe essere prevedibile e facile da capire. Come sviluppatore frontend, l'attenzione è principalmente su tre aspetti:
- Percorso URL: Identifica l'ambito della richiesta del client, ad esempio:
/products: Probabilmente restituisce una lista di prodotti/products/abc: Fornisce i dettagli del prodotto con ID "abc"
- Metodi HTTP: Definiscono l'azione specifica da eseguire:
GET: Utilizzato per recuperare datiPOST: Utilizzato per creare nuovi datiPUT: Utilizzato per aggiornare dati esistentiDELETE: Utilizzato per eliminare dati
- Codici di stato: Forniscono un'indicazione rapida sul successo della richiesta e, in caso contrario, dove potrebbe essere il problema. I codici di stato comuni includono:
200: Successo404: Risorsa richiesta non trovata500: Errore del server
2. Se GET può anche trasportare dati in una richiesta, perché dovremmo usare POST?
Dato che GET può anche inviare richieste con dati, perché abbiamo ancora bisogno di usare POST?
Questo si basa principalmente su quattro considerazioni:
- Sicurezza: Poiché i dati GET sono aggiunti all'URL, i dati sensibili sono facilmente esposti. POST inserisce i dati nel corpo della richiesta, il che è relativamente più sicuro.
- Limite sulla dimensione dei dati: Con GET, browser e server impongono limiti sulla lunghezza dell'URL (anche se varia leggermente tra i browser, generalmente si aggira intorno ai 2048 byte), il che limita la quantità di dati. POST nominalmente non ha limiti, ma in pratica, il middleware è tipicamente configurato per limitare la dimensione dei dati per prevenire attacchi malevoli con payload di grandi dimensioni. Ad esempio, il
body-parserdi Express. - Chiarezza semantica: Garantisce che gli sviluppatori possano comprendere chiaramente lo scopo della richiesta. GET è tipicamente usato per recuperare dati, mentre POST è più adatto per creare o aggiornare dati.
- Immutabilità: Nel protocollo HTTP, il metodo GET è progettato per essere "sicuro" -- indipendentemente da quante richieste vengono inviate, non c'è preoccupazione di modificare i dati sul server.
3. Cosa fa il metodo PUT in HTTP?
Qual è lo scopo del metodo PUT?
Serve principalmente a due scopi:
- Aggiornare una risorsa esistente (es. modificare le informazioni utente)
- Creare una nuova risorsa se non esiste
Esempio
const axios = require('axios');
async function updateUser(userId, newName) {
const url = `https://api.example.com/users/${userId}`; // URL dell'API
const data = {
name: newName,
};
try {
const response = await axios.put(url, data); // Esegui la richiesta PUT
console.log('Utente aggiornato:', response.data); // Mostra le info utente aggiornate
} catch (error) {
console.log('Errore nell\'aggiornamento utente:', error); // Mostra le info sull'errore
}
}
updateUser(1, 'Pitt Wu');