Che cos'è REST?
Trasferimento dello stato rappresentativo. Descrive come un sistema può comunicare lo stato con un altro. Un esempio potrebbe essere lo stato di un prodotto (nome, descrizione, ecc.) Rappresentato come XML, JSON o testo semplice. L'idea di stato generalizzata è definita una risorsa.
Quale posizione occupa in un ecosistema di architettura Web?
REST è comunemente associato all'interfaccia dei servizi Web poiché HTTP è di gran lunga il protocollo carrier più comune. Nel modello a 7 livelli esiste nel livello di applicazione . Tuttavia, vedi la prossima sezione.
Quanto è strettamente (o genericamente) associato al protocollo?
REST non è HTTP. Usa HTTP perché nella sua forma più generale REST esiste per aiutare una macchina a mappare il concetto di un verbo contro una raccolta arbitraria di nomi. HTTP contiene un utile insieme di verbi generici (GET, PUT, PATCH, ecc.) Che possono essere applicati a nomi arbitrari espressi come URI usando HTTP, ad es. OTTIENI link ).
Quali sono le alternative a REST e in che modo REST si confronta con loro
Questo è come chiedere "Quanto è RESTful il mio approccio?" Utilizza il seguente elenco (riepilogato dal Richardson Maturity Model come descritto da Martin Fowler ):
Livello 0 - La palude di POX
Usa il POST per tutto (legge, scrive, cancella). Questo è SOAP, POX, RPI ecc. Stai semplicemente usando HTTP come tunnel per il tuo protocollo. Scegli come target un singolo endpoint che fa tutto in base al contenuto del corpo della richiesta.
Livello 1 - Risorse
Usa il POST per tutto. Scegli come target più endpoint progettati per fornire informazioni su una particolare cosa. Hai appena scoperto le risorse.
Livello 2 - Verbi HTTP
Usa verbi HTTP contro le risorse. Ora lo stai recuperando. POST è quello di creare, PUT è quello di sovrascrivere, OPZIONI per le operazioni disponibili, DELETE per, bene, eliminare la risorsa. Come risultato dell'uso di questi verbi, i codici di stato HTTP diversi iniziano a diventare più pertinenti (202 ACCETTATI chiunque ?).
Livello 3 - Controllo Hypermedia ( HATEOAS )
A questo punto fai il salto definitivo e introduci hypermedia come meccanismo di controllo del flusso. Un cliente REST non ha bisogno di conoscenze preliminari su come interagire con una particolare applicazione o server al di là di una comprensione generica di hypermedia. Questo può essere comunicato in HTTP attraverso il campo di intestazione Content-Type. I formati di testo includono AtomPub e (più conciso) HAL , mentre HyperAudio funziona bene per i flussi audio (vedi SoundCloud et al)