Cos'è una RESTful API?

Con tutto il clamore suscitato dai servizi web RESTful, si potrebbe pensare che si tratti improvvisamente di un nuovo concetto entrato in scena solo un anno o due fa. In realtà, i concetti alla base di RESTful API sono vecchi quanto il web stesso e vengono davvero meglio compresi da questa prospettiva.

Diagramma RESTful API

Prima di addentrarci in quello che sono le RESTful API, ma ora vediamo perché dovrebbe interessarti. Nel corso degli anni sono sorti centinaia di metodi per far sì che i computer collegati in rete parlassero la stessa lingua. L'evoluzione di questi metodi, o "protocolli", ha permesso di accettare uno stack di standard concordati, ognuno dei quali riguarda la comunicazione tra computer in un modo specifico. Al vertice di questo stack ci sono i livelli Application e Presentation, dove viene scambiata la logica di business e i dati che ne derivano.

REST si trova su questo stack in modo da semplificare agli esseri umani la comprensione di ciò che viene scambiato, permettendo ai computer di parlare tra loro in modo efficiente. Potresti anche aver sentito parlare di alcune delle altre tecnologie che possono trovarsi qui, come SOAP (che richiede una buona quantità di dati e potenza di calcolo e non è davvero adeguato per le risorse limitate delle applicazioni mobili), JMS (che è specifico per le applicazioni Java) e XML-RPC (che ha molti degli stessi problemi di SOAP senza nessuno dei vantaggi della standardizzazione).

La Guida al successo per l'API Product Manager
La Guida al successo per l'API Product Manager
Sfrutta il potere delle API con la guida di successo in 7 parti su come le aziende possono creare programmi API per far crescere il business digitale!

REST permette di passare una quantità minima di dati usando gli stessi meccanismi ben stabiliti che definiscono il web senza molti degli ingombri introdotti da protocolli più corposi. Ciò permette ai programmatori di costruire più rapidamente programmi che accedono e agiscono sui dati esposti tramite API, anche in ambienti con velocità di rete inaffidabili e potenza di calcolo limitata.

REST funziona quasi esattamente come un sito web in un browser. Una risorsa viene esposta ad un programma tramite un URL. Il programma può accedere a quell'URL e ricevere dati sulla risorsa, non diversamente da quando si digita un URL nel browser e si ottiene una pagina web. Le RESTful API ben progettate includono link aggiuntivi che il programma può seguire per richiedere informazioni correlate - in modo simile a come si clicca su un link per visitare una nuova pagina - o per inviare dati per aggiornare la risorsa data - in modo simile a come si compila un modulo web per creare un nuovo account per un sito web.

Il compromesso per tutta questa flessibilità è una mancanza di standard altamente definiti. REST descrive effettivamente il metodo con cui i dati vengono trasferiti, ma gli implementatori sono rimasti per lo più da soli a capire che aspetto dovrebbero avere questi dati. Ciò è in rapido cambiamento, specialmente con l'aumento del numero di dispositivi mobili che accedono ai dati attraverso la rete, anche se ci vorrà un po' di tempo prima che questi formati si fondano in qualcosa che somigli a dei veri standard.