REST ha molti vantaggi tecnici e non si tratta solo di "stile". È un'architettura, un modo di pensare, che ha molti vantaggi rispetto a un'architettura in stile rpc. REST è anche MOLTO più di uno schema URI.
REST offre 5 "vincoli" che aiutano a guidare verso una buona API:
1. Client-server
Autoesplicativo e già la natura delle app Web.
2. Stateless
Statelessness significa che lo stato è mantenuto sul client. Questo rende ogni transazione richiesta / risposta indipendente. I vantaggi sono:
Le comunicazioni senza stato consentono ai client di recuperare da errori di rete.
Client e server possono andare e venire senza lo stato di corruzione.
I nuovi nodi di elaborazione possono essere collegati senza una gestione dello stato complessa.
3. Cacheable
Controllo della cache a più livelli (client, server, intermediario) - perché lo stato esiste in un'unica posizione. Per ovvi motivi, la memorizzazione nella cache di più livelli riduce la latenza, la larghezza di banda e il costo.
4. Sistema a strati
Limita la complessità a ogni livello. Migliora anche la sicurezza perché la sicurezza può essere implementata su più livelli.
5. Interfaccia uniforme
Le risorse sono identificate dagli URI. Questi URI servono come un'astrazione e non dovrebbero cambiare spesso. Le rappresentazioni sono rappresentazioni di una risorsa per il cliente in base a una negoziazione. I dati di controllo sono ciò che negozia le rappresentazioni e le azioni. Hypermedia protegge il server dall'essere bloccato in uno schema uri.
Tutti questi sono parte di REST. È molto più di uno schema URI.