2014-10-16 13 views

risposta

10

When I say hypertext, I mean the simultaneous presentation of information and controls such that the information becomes the affordance through which the user (or automaton) obtains choices and selects action. Roy T. Fielding - http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven

si tratta di uno dei vincoli fondamentali dell'architettura REST - Hypermedia come il motore di Application Stato (abbreviato hateoas). Significa che in qualsiasi momento il cliente, basato su hypermedia in rappresentazione della risorsa corrente, deve disporre di tutte le informazioni necessarie per decidere dove transitare in seguito (modificare il suo stato dell'applicazione). I controlli ipermediali in ipertesto collegano le risorse tra loro e descrivono le loro capacità in modi leggibili dalla macchina. Un client REST deve solo conoscere una cosa per comunicare con il server REST: comprensione di hypermedia. Di fronte, in un'architettura orientata ai servizi (SOA), client e server interagiscono attraverso un'interfaccia fissa condivisa attraverso la documentazione o un linguaggio di descrizione dell'interfaccia (IDL).

HATEOAS disaccoppia client e server in modo che possano essere sviluppati separatamente.

Per esempio,

Se si effettua una chiamata iniziale per un servizio riposo per aggiungere un cliente che utilizza alcuni URL/clienti/allora si otterrà una risposta indietro (tenere in considerazione è aggiunto con successo il cliente),

HTTP/1.1 201 Created 
Location: http://www.myREST/customers/<uuid>/ 

Ora il client che ha effettuato la chiamata per aggiungere il cliente sa come trovare il cliente corrispondente dal collegamento restituito come intestazione di risposta.

Si può chiedere come fa il cliente a sapere che può fare POST a/cliente /. Con diversi mezzi: controlli ipermediali, formati e profili specifici DSL.

0

REST significa che l'API segue l'uso corretto per i verbi HTTP, il codice di stato, ecc. Protocollo HTTP, ha verbi come: GET, POST, PUT, OPTIONS e DELETE. In una pausa, ogni verbo è mappato a un'azione specifica sulla risorsa. Ad esempio: POST è sempre creare una nuova istanza di risorsa; GET ottiene la risorsa (o una lista), DELETE rimuove sempre la risorsa associata; PUT è modificare/aggiornare una risorsa esistere ..... Inoltre, è necessario utilizzare il codice di stato per indicare la risposta: 201 per creare, modificare 200, ecc

Si può prendere ulteriori informazioni su http://restinpractice.com/book/ (Jim Weber libro)

+0

No, "REST" non sta "facendo HTTP correttamente". Quest'ultimo è buono, ma REST aggiunge molti altri aspetti. –

+0

Grazie. Quando ho detto correttamente, voglio dire, l'uso appropriato in una API. Grazie ancora. –