it-swarm.it

Che cos'è REST (in inglese semplice)

Ultimamente mi sono interessato a familiarizzare con REST. Ho provato a leggere voce wiki su REST , ma non è stato di alcun aiuto. Lo apprezzerei molto se qualcuno potesse spiegare in un inglese semplice (cioè senza inutile gergo tecnologico tecnologia)

  1. Cos'è REST
  2. Quale posizione occupa nell'ecosistema dell'architettura web
  3. Quanto strettamente (o vagamente) è accoppiato al protocollo.
  4. Quali sono le alternative a REST e in che modo REST confronta con loro.

Capisco che potrebbe non essere possibile rispondere a questa in uno o due paragrafi, in tal caso i collegamenti pertinenti saranno molto apprezzati.

85
Gaurav

Che cos'è REST (in inglese semplice)

Inglese semplice:

Rappresentativo: l'azione di parlare o agire per conto di qualcuno.
Trasferimento stato: stato trasferimento.


Tecnico:

  • non trasferiamo un oggetto reale ma una sua rappresentazione in una forma (es. un file xml/json/text per rappresentare una tabella di database).
  • REST per aver esposto un'API pubblica su Internet per gestire le operazioni CRUD sui dati. REST è focalizzato sull'accesso alle risorse denominate attraverso un'unica interfaccia coerente.
  • REST è rappresenta tramite un tipo di supporto. Alcuni esempi di tipi di media includono XML, JSON e RDF.
  • REST è uno stile architettonico per architettura orientata alle risorse (ROA) , non una specifica o uno standard.
  • Lo stile architettonico significa che è un concetto, una teoria (e come viene implementato, dipende da te)
  • Tutto è identificato da un endpoint unico. ovvero esiste un endpoint per ogni risorsa (dati).
  • L'endpoint è costituito da un nome di dominio con indirizzo di risorsa.

REST vs SOAP

10
Premraj

Che cos'è REST?

Trasferimento di 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 generalizzata di stato è definita una risorsa.

Che posizione occupa in un ecosistema di architettura web?

REST è comunemente associato all'interfaccia dei servizi Web poiché HTTP è di gran lunga il protocollo di operatore più comune. Nel modello a 7 livelli esiste a livello applicazione . Tuttavia, vedere la sezione successiva.

Quanto strettamente (o liberamente) è accoppiato al protocollo?

REST non è HTTP. Utilizza HTTP perché nella sua forma più generale REST esiste per aiutare una macchina a mappare il concetto di verbo rispetto a una raccolta arbitraria di nomi. HTTP contiene un utile set di verbi generici (GET, PUT , PATCH ecc.) Che possono essere applicati a nomi arbitrari espressi come URI utilizzando HTTP, ad esempio GET http://example.org/Product (54 ).

Quali sono le alternative a REST e in che modo REST confronta con loro

Questo è simile a chiedere "Quanto RESTful è il mio approccio?" Utilizzare il seguente elenco (riassunto dal Richardson Maturity Model come descritto da Martin Fowler ):

Livello 0 - La palude del POX

Usa POST per tutto (letture, scritture, eliminazioni). Questo è SOAP, POX, RPI ecc. Stai solo 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 POST per tutto. Scegli come target più endpoint progettati per fornire informazioni su una cosa particolare. Hai appena scoperto delle risorse.

Livello 2 - Verbi HTTP

Usa i verbi HTTP contro le risorse. Ora lo stai ottenendo. POST è da creare, PUT è da sovrascrivere, OPZIONI per le operazioni disponibili, ELIMINA per, bene, eliminare la risorsa. Come risultato dell'uso di questi verbi diversi codici di stato HTTP inizia a diventare più pertinente (202 ACCETTATO qualcuno?).

Livello 3 - Controllo hypermedia ( HATEOAS )

A questo punto fai il salto finale e introduci l'ipermedia come meccanismo di controllo del flusso. A REST non ha bisogno di conoscenze preliminari su come interagire con una particolare applicazione o server oltre una comprensione generica dell'ipermedia. 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)

44
Gary Rowe

Mentre REST è un'abbreviazione di Representational State Transfer, può essere più semplice considerare l'idea di eseguire varie azioni attraverso un'interfaccia in qualche modo intuitiva.

Ad esempio, un URL come http://www.mysite.com/FindProduct/125/ potrebbe essere interpretato come qualcuno che desidera informazioni sul prodotto con un ID di 125.

Mentre REST è generalmente pensato in termini di HTTP, il concetto potrebbe essere applicato ad altri protocolli come indicato nel riferimento di Wikipedia.

Altri esempi di REST che potrebbero essere utili:

11
JB King