Pillole REST

services

Cosa si intende con servizi REST?

I servizi rest (Representational State Transfer) sono servizi offerti tramite semplici chiamate web che usano il protocollo http, quindi non soap o altri protocolli dedicati, caratterizzati dal fatto che, invece di invocare pagine HTML, invocano funzioni, es.:

http://example.com/user.php?action=isActive&id=36

Nel mondo REST una pagina è una funzione o collezione di funzioni che agiscono su una stessa risorsa, o eventualmente un punto di accesso a un insieme di funzioni generiche.

REST non è uno standard ma piuttosto un approccio, infatti esistono vari approcci REST a seconda di come si organizzano le varie parti di informazione, ad esempio alcuni (ma ce ne sono altri) possono essere:

  • http://example.com/user/isActive.php?id=36

    Il tipo di oggetto presentato come directory, l’azione nel nome pagina, i dettagli nei parametri

  • http://example.com/user.php?action=isActive&id=36

    Il tipo di oggetto come pagina, l’azione e i dettagli come parametri

  • http://example.com/rest.php?obj=user&action=isActive&id=36

    Tipo di oggetto, azione e dettagli come parametri

  • http://example.com/user/36?action=isActive

    Il tipo di oggetto come directory, l’id della risorsa come pagina, l’azione nei parametri;
    in questo caso spesso si si devono rimappare gli id dell’url da nome pagina a parametro di una pagina nascosta, ad esempio su apache tramite htaccess

Metodi HTTP

Altri approcci prevedono l’uso del campo “metodo” del protocollo HTTP per specificare l’azione da eseguire, es. GET, PUT, ecc..

Questo approccio ha alcuni svantaggi:

  • Non consente di costruire semplici link pubblicabili per qualunque funzione invocata, quindi risulta meno estensibile
  • Non è compatibile con (tutti) i browser, quindi prevede un client specifico o dedicato e non può essere usato entro siti web

Dunque personalmente lo sconsiglio e  non lo uso.

REST insieme a CRUD

L’approccio REST è pensato per il mondo web dove la connessione avviene con tempi di comunicazione variabili (qualche frazione di secondo come diversi minuti) e a volte può interrompersi. Per questo motivo i servizi REST richiedono di essere atomici, ovvero quando tra più chiamate REST e la comunicazione si interrompe o si prolunga il sistema deve mantenersi coerente e mai presentarsi in uno stato “a metà”.

Per implementare questa atomicità i servizi REST sono spesso implementati con approccio CRUD (come i database transazionali), ovvero le interazioni REST si raggruppano in 4 famiglie di azioni base che possono essere rese atomiche: Create, Read, Update e Delete.

Con questo approccio si supera il problema della discontinuità di rete, garantendo che il sistema resti coerente supportando interazioni discontinue e prolungate.

Licenza:
I contenuti di questo articolo sono proprietà intellettuale dei relativi autori e protetti ai sensi dell'art. 1 della legge italiana sul diritto d'autore n. 633 del 22 aprile 1941.
La copia, parziale o integrale, è illegale escluso il caso di citazioni di lunghezza massima di un singolo paragrafo e il cui testo sia completamente incluso in un link a questa pagina.
Pagine simili a "Pillole REST"