Differenze tra PUT e POST nel sistema REST

di Lorenzo Neri
Published: Last Updated on

Quali sono le differenze tra il metodo PUT e il metodo POST nel sistema REST? Ti sei mai posto questa domanda? Scopriamolo insieme in questo articolo!

Ciao, sono Lorenzo Neri, un informatico. Mi impegno a creare contenuti che aiutino le persone a padroneggiare una delle arti del nuovo millennio: l’informatica!

Durante la mia carriera ho raccolto molte esperienze lavorative, e quale modo migliore per tenerne traccia se non tramite questo blog che stai leggendo?

Inoltre, perché tenerle solo per me quando possono essere utili anche a te? ;)

In questi anni ho lavorato spesso alla parte back-end di diversi progetti web. Quando si ha a che fare con le API – no, non gli insetti! – si incontrano spesso i metodi PUT e POST. Cerchiamo di capire insieme a cosa servono e quali sono le loro differenze.

A che cosa servono i metodi PUT e POST nel sistema REST?

Prima di scoprire le differenze tra questi due metodi, cerchiamo di capirne l’utilità.

Entrambi i metodi PUT e POST possono essere utilizzati per creare risorse.

Creare cosa?

Poniti questa domanda: “Per quale motivo sto eseguendo questa determinata azione?”

In generale, sia PUT che POST vengono usati per inviare dati alle API, permettendoti di porre domande complesse e ricevere risposte adeguate.

Con questa premessa chiara, possiamo procedere oltre.

Quali sono le differenze tra PUT e POST nel sistema REST?

Prima di tutto: non è necessario supportare entrambi i metodi nelle tue API.

La scelta dipende da ciò che vuoi ottenere. Dovrai scegliere il metodo appropriato in base agli oggetti che stai gestendo nelle richieste HTTP.

Un aspetto importante da considerare:

Dai tu un nome esplicito agli URL delle risorse che crei, oppure lasci che sia il server a decidere?

– Se decidi tu il nome, utilizza PUT.
– Se lasci al server il compito di decidere, utilizza POST.

Un’altra differenza fondamentale:

Il metodo PUT è idempotente. In pratica, ripetere più volte la stessa operazione non cambierà il risultato.

Con PUT, puoi aggiornare o creare una risorsa utilizzando lo stesso URL.

Con POST, possono esserci più richieste HTTP che aggiornano parti diverse dell’oggetto.

Esempio di POST

Utilizzato per creare una nuova risorsa:

POST /questions HTTP/1.1
Host: www.example.com/

Nota che l’URL della risorsa non è specificato nella richiesta: verrà restituito dal server dopo l’elaborazione.

Esempio di PUT

Utilizzato per creare o sovrascrivere una risorsa:

PUT /domande/<nuova_domanda> HTTP/1.1
Host: www.example.com/

Per aggiornare una risorsa esistente:

PUT /domande/<domanda_esistente> HTTP/1.1
Host: www.example.com/

Con PUT, sei obbligato a specificare la risorsa su cui vuoi agire: devi rendere esplicito l’URL dell’oggetto che vuoi creare o modificare.

Come vedi, nel sistema REST, la differenza tra PUT e POST può essere cruciale per garantire il funzionamento corretto delle tue API.

Conclusioni e ulteriori letture

Spero che questo articolo ti abbia aiutato a comprendere meglio le differenze tra PUT e POST nel sistema REST. Puoi trovare altri approfondimenti nel mio blog, oppure iscriverti alla mia newsletter per non perderti nulla!

Continua a scoprire di più con questi articoli!

Lascia un commento

Questo sito potrebbe fare uso di cookie e siccome l'UE mi obbliga a fartelo presente, eccoti il classico banner dove puoi decidere come gestirli. Accetta Leggi di più