REpresentational State Transfer (REST)
E’ un modello astratto dell’architettura web, per il redesign e definzione dei protocolli
HTTP e URIs.

<aside>
💡
Ogni azione è una transizione a uno stato successivo dell’applicazione.
</aside>
URI (Uniform Resource Identifier): stringa che identifica univocamente una risorsa in rete.
I principi REST
- Risorse sono identificate attraverso URIs
- I servizi espongono le proprie risorse attraverso gli URIs
- Interfaccia uniforme:
- I client invocano metodi HTTP (create/read/update/delete resources):
POST
e PUT
per creare e caricare lo stato di una risorsa;
DELETE
per eliminare una risorsa;
GET
per ottenere lo stato corrente di una risosa.
- Messaggi auto-descrittivi:
- Le richieste contengono le “context information” sufficienti a processare il messaggio;
- Le risorse sono scollegate dalla propria rappresentazione, cosi che il contenuto può essere visualizzato in vari formati (HTML, XML, JSON, plain text, PDF, JPEG, etc.)
- Interazioni stateful tra gli hyperlinks:
- Ogni interazioni con una risorsa è stateless
- I server non contengono informazioni sui client, ogni sessione è tenuta sul client
- Le interazioni stateful, si affidano sul concetto di trasferimento esplicito dello stato
ESEMPIO:
Il cliente vuole aggiornare il suo ultimo ordine di cibo.

ESEMPIO 2:
Si vuole organizzare il prossimo venerdì sera.

Ogniuno aggiorna inserendo qualcosa
Content negotation
Essendo a carico del client, l’elaborazione dei dati ricevuti dal server, durante la negoziazione può venire specificato il tipo di formato “gradito” per la descrizione dell’applicazione.
