Qual è la differenza tra un sistema REST e un sistema RESTful?
Da alcune cose che ho letto la maggior parte dei cosiddetti servizi REST sono in realtà servizi RESTful. Quindi qual è la differenza tra i due.
Qual è la differenza tra un sistema REST e un sistema RESTful?
Da alcune cose che ho letto la maggior parte dei cosiddetti servizi REST sono in realtà servizi RESTful. Quindi qual è la differenza tra i due.
Risposte:
Il trasferimento di stato rappresentativo (REST) è uno stile di architettura software. Come descritto in una tesi di Roy Fielding, REST è uno "stile architettonico" che sfrutta sostanzialmente la tecnologia e i protocolli esistenti sul Web.
RESTful viene in genere utilizzato per fare riferimento a servizi Web che implementano tale architettura.
architect
di cosa? di url? come https://translation.googleapis.com/language/translate/v2
questo è lo stile REST?
Per differenziare o confrontare questi 2, dovresti sapere cos'è REST .
REST ( RE presentation S tate T ransfer) è fondamentalmente uno stile architettonico di sviluppo con alcuni principi:
Dovrebbe essere apolide
Dovrebbe accedere a tutte le risorse dal server usando solo l'URI
Non ha la crittografia integrata
Non ha sessione
Utilizza uno e un solo protocollo: HTTP
Per eseguire operazioni CRUD, dovrebbe utilizzare HTTP verbi quali get
, post
, put
edelete
Dovrebbe restituire il risultato solo sotto forma di JSON o XML, atom, OData ecc. (Dati leggeri)
REST based services
seguire alcuni dei principi di cui sopra e non tutti
RESTFUL services
significa che segue tutti i principi di cui sopra.
È simile al concetto di:
Object-based languages
supporta tutti i concetti di OOP, esempi : C ++, C #
Object oriented languages
supporta alcune delle funzionalità di OOP, esempi : JavaScript, VB
Esempio :
ASP Dot NET MVC 4 è REST-Based
mentre Microsoft WEB API è RESTFul
.
MVC supporta solo alcuni dei principi REST di cui sopra mentre l'API WEB supporta tutti i principi REST di cui sopra.
MVC supporta solo quanto segue dall'API REST
Possiamo accedere alla risorsa tramite URI
Supporta il verbo HTTP per accedere alla risorsa dal server
Può restituire i risultati sotto forma di JSON, XML, ovvero HTTPResponse.
Tuttavia, allo stesso tempo in MVC
Possiamo usare la sessione
Possiamo renderlo con stato
Siamo in grado di restituire video o immagini dal metodo di azione del controller che viola sostanzialmente i principi REST
Questo è il motivo per cui MVC è REST-Based
considerando che l'API WEB supporta tutti i principi di cui sopra ed è RESTFul
.
"REST" è un paradigma architettonico. "RESTful" descrive l'uso di quel paradigma.
architect
di cosa? di url? come https://translation.googleapis.com/language/translate/v2
questo è lo stile REST?
Come ha detto Jason nei commenti, RESTful è solo usato come aggettivo che descrive qualcosa che rispetta i vincoli REST.
REST sta per trasferimento di stato rappresentativo. Ciò significa che lo stato stesso non viene trasferito, ma una semplice rappresentazione di esso lo è. L'esempio più comune è un'app basata su puro server HTML (senza javascript). Il browser non sa nulla dell'applicazione stessa, ma tramite collegamenti e risorse, il server è in grado di trasferire lo stato dell'applicazione al browser. Laddove un pulsante cambierebbe normalmente una variabile di stato (ad es. Pagina aperta) in una normale applicazione Windows, nel browser è presente un collegamento che rappresenta tale cambiamento di stato.
L'idea è di usare l'ipermedia. E forse per creare nuovi tipi ipermediali. Potenzialmente possiamo espandere il browser con javascript / AJAX e creare nuovi tipi di hypermedia personalizzati. E avremmo una vera applicazione REST.
Questa è la mia versione breve di ciò che REST rappresenta, il problema è che è difficile da implementare. Personalmente dico RESTful, quando voglio fare riferimento ai principi REST, ma so che non sto davvero implementando l'intero concetto di REST. Non diciamo davvero SOAPful, perché o usi SOAP o no. Penso che la maggior parte delle persone non esegua il REST nel modo in cui è stato immaginato dal suo creatore Roy Fielding, in realtà implementiamo architetture RESTful o RESTlike. Puoi vedere la sua tesi di laurea e troverai l'acronimo REST ma non la parola RESTful.
REST è uno stile di architettura software per software distribuito
La conformità ai vincoli REST viene definita "RESTful".
Molto utilizzato oggi per creare servizi Web in alternativa a SOAP.
Qui hai alcuni link da controllare
http://en.wikipedia.org/wiki/Representational_State_Transfer
http://www.computerworld.com/s/article/297424/Representational_State_Transfer_REST_
http://www.ibm.com/developerworks/webservices/library/ws-restful/
grazie per le risposte. Leggi questo articolo di Alex Rodriguez che suggerisce che un servizio web RESTful ha 4 caratteristiche di base che sono:
Representational State Transfer (REST) è uno stile di architettura software per sistemi ipermediali distribuiti come il World Wide Web. Il termine Rappresentational State Transfer è stato introdotto e definito nel 2000 da Roy Fielding 1 [2] nella sua tesi di dottorato. Fielding è uno dei principali autori delle versioni delle specifiche Hypertext Transfer Protocol (HTTP) 1.0 e 1.1. La conformità ai vincoli REST viene definita "RESTful". Fonte: Wikipedia
I servizi Web sono essenzialmente siti Web il cui contenuto è consumato da programmi per computer, non da persone. REST è un insieme di principi architetturali che stabiliscono che i servizi Web dovrebbero sfruttare al massimo HTTP e altri standard Web, in modo che i programmi ottengano tutte le cose buone che le persone già possono uscire dal web. REST è spesso in contrasto con i servizi web SOAP e altri servizi web orientati alla "chiamata di procedura remota".
Le presentazioni di Stefan Tilkov su REST su Parleys.com sono abbastanza buone, specialmente questa .
Per un libro, non puoi trovare di meglio dei Restful Web Services di Richardson e Ruby .
Un servizio basato su REST è chiamato "servizio RESTful".
Fonte Mi affido a postare che: Dr.Dobbs Archive
Esistono 4 livelli di API definiti nel modello di maturità Richardson. Questi sono definiti come:
livello 0: qualsiasi sistema che ha un unico endpoint per tutte le sue API (SOAP o RPC rientrano in questa categoria). Le API di livello 0 possono anche assomigliare a "comandi".
livello 1: un sistema descritto da ResourceUri. Questo è un sistema che definisce più URI basati su entità (invece di avere un singolo endpoint come farebbe un sistema di livello 0). Questi URI possono utilizzare diverse azioni http (POST, GET, PUT, ecc.) Per implementare diverse azioni contro quella risorsa.
livello 2: aka livello 1 con un uso conforme dei metodi / verbi HTTP standard e risposte con codice multi stato
livello 3: aka livello 2 più HATEOAS (hypermedia incluso nella risposta che descrive le chiamate aggiuntive che è possibile effettuare)
Mentre i livelli 1, livello 2 e livello 3 possono essere considerati come sistemi REST, solo i livelli più severi (ovvero livello 2 e livello 3) sono considerati RESTful.
Quindi essenzialmente tutte le API RESTful sono API REST, ma non tutte le API REST sono RESTful
Un "servizio REST" e un "servizio RESTful" sono la stessa cosa.
Un sistema RESTful è qualsiasi sistema che segue le convenzioni REST come definito nel documento originale che ha creato l'idea delle applicazioni in rete RESTful .
Vale la pena notare che ci sono vari livelli di RESTfulness. Nel complesso, REST è uno stile, non uno standard, quindi c'è spazio per l'interpretazione in base alle esigenze. un esempio sono gli URL di risorse gerarchici (ad es. /things/ID/relatedthings
) vs URL piatti (ad es. /things/ID
e /relatedthings?thing=ID
)