REST sta per Representational State Transfer e indica uno stile architetturale basato su come funziona il web. Per supportare questo stile nello sviluppo di web service, Java mette a disposizione JAX-RS (Java API for RESTful Web Services).
In REST ogni informazione é una risorsa, e di fa a riferimento a queste risorse usando URI (Uniform Resource Identifier), tipicamente link nel web.
HTTP
Lo stile architetturale REST client-server é progettato per usare un protocollo di comunicazione stateless, tipicamente HTTP.
Il client manda un richiesta al server, aspettandosi una risposta. La risposta é costituita da un codice (p.es.: 200 OK); un certo numero di header, tra cui il content-type che tipicamente é txt/html, ma può anche essere application/xml o image/jpeg; e la rappresentazione.
I principale metodi HTTP sono:
- GET: per leggere una rappresentazione della risorsa. Dovrebbe essere implementato in modo sicuro, ovvero non dovrebbe cambiare lo stato della risorsa, e idempotente, ovvero chiamare più volte get per la stessa risorsa dovrebbe lasciare la risorsa nello stesso stato.
- POST: crea una nuova risorsa come subordinata ad una risorsa principale identificata dalla URI richiesta. Di conseguenza non é sicura, dato che la risorsa é aggiornata, né idempotente.
- PUT: aggiorna lo stato di una risorsa memorizzata ad un dato URI. Non é sicura ma é idempotente.
- DELETE: richiede l'eleminazione della risorsa. É quindi idempotente ma non sicura.
- HEAD: simile a GET, ma non ritorna il corpo del messaggio.
- TRACE: ritorna una eco della richiesta ricevuta.
- OPTIONS: é una richiesta di informazioni sulle opzioni di comunicazione disponibili.
- CONNECT: usata in congiunzione con un proxy per usare il protocollo HTTP come wrapper per altri protocolli di rete per gestire il tunnelling.
I principali tipi di media internet, quelli che erano orginalmente chiamati tipi MIME) utilizzati sono
- text/html
- text/plain: testo semplice, é il default.
- image/gif, image/jpeg, image/png
- text/xml, application/xml
- application/json: JSON, che sta per JavaScript Object Notation, é un formato di testo usato per lo scambio di dati per linguaggi di programmazione.
- 1xx: informazionale
- 2xx: successo; ad es. 200 OK
- 3xx: ridirezione; ad es. 301 Moved Permanently
- 4xx: errore lato client; ad es. 404 Not Found
- 5xx: errore lato server; ad es. 500 Internal Server Error
Nessun commento:
Posta un commento