Was ist der Unterschied zwischen einem REST - System und einem RESTful-System?
Aus einigen Dingen habe ich read die meisten so genannten REST - Dienste sind eigentlich RESTful - Dienste. Was ist also der Unterschied zwischen den beiden.
Representational State Transfer (REST) ist ein Stil der Softwarearchitektur. Wie in einer Dissertation von Roy Fielding beschrieben, handelt es sich bei REST um einen "Architekturstil", der im Wesentlichen die vorhandenen Technologien und Protokolle des Webs nutzt.
RESTful wird normalerweise verwendet, um auf Webdienste zu verweisen, die eine solche Architektur implementieren.
"REST" ist ein architektonisches Paradigma. "RESTful" beschreibt dieses Paradigma.
Um diese 2 zu unterscheiden oder zu vergleichen, sollten Sie wissen, wasRESTist.
REST (REpresentationalStateTransfer) ist im Grunde ein architektonischer Entwicklungsstil mit einigen Prinzipien ...
Es sollte staatenlos sein
Es sollte auf alle Ressourcen vom Server nur mit URI zugreifen
Es ist keine Verschlüsselung eingebaut
Es hat keine Sitzung
Es verwendet ein und nur ein Protokoll, das HTTP ist
Für die Durchführung von CRUD-Vorgängen sollten HTTP-Verben wie "get", "post", "put" und "delete" verwendet werden
Es sollte das Ergebnis nur in Form von JSON oder XML, Atom, OData usw. zurückgeben (leichte Daten).
REST based services
befolgen einige der oben genannten Prinzipien und nicht alle
RESTFUL services
bedeutet, dass alle oben genannten Prinzipien befolgt werden.
Es ist ähnlich dem Konzept von:
Object-based languages
unterstützt alle OOPs-Konzepte, Beispiele : C++, C #
Object oriented languages
unterstützt einige der OOPs-Funktionen, Beispiele : JavaScript, VB
Beispiel :
ASP Dot NET MVC 4 ist REST-Based
, während Microsoft WEB API RESTFul
ist.
MVC unterstützt nur einige der oben genannten REST - Prinzipien, während die WEB-API alle oben genannten REST - Prinzipien unterstützt.
MVC unterstützt nur Folgendes von der REST - API
Wir können über die URI auf die Ressource zugreifen
Es unterstützt das HTTP-Verb für den Zugriff auf die Ressource vom Server
Es kann die Ergebnisse in Form von JSON, XML, dh der HTTPResponse, zurückgeben.
Zur gleichen Zeit jedoch in MVC
Wir können die Sitzung nutzen
Wir können es zustandsbehaftet machen
Wir können Video oder Bilder von der Controller-Action-Methode zurückgeben, die grundsätzlich gegen die REST - Prinzipien verstößt
Aus diesem Grund ist MVC REST-Based
, wohingegen die WEB-API alle oben genannten Prinzipien unterstützt und RESTFul
ist.
Wie Jason in den Kommentaren sagte, wird RESTful nur als Adjektiv verwendet, das etwas beschreibt, das die REST -Einschränkungen berücksichtigt.
REST steht für Representational State Transfer. Das bedeutet, dass der Zustand selbst nicht übertragen wird, sondern nur eine Darstellung davon ist. Das häufigste Beispiel ist eine reine HTML-Server-basierte Anwendung (kein Javascript). Der Browser weiß nichts über die Anwendung selbst, aber der Server kann den Status der Anwendung über Links und Ressourcen an den Browser übertragen. Wenn eine Schaltfläche normalerweise eine Statusvariable (z. B. geöffnete Seite) in einer normalen Windows-Anwendung ändern würde, gibt es im Browser einen Link, der eine solche Statusänderung darstellt.
Die Idee ist, Hypermedia zu verwenden. Und vielleicht, um neue Hypermedia-Typen zu erstellen. Möglicherweise können wir den Browser mit Javascript/AJAX erweitern und neue benutzerdefinierte Hypermedia-Typen erstellen. Und wir hätten eine true REST Anwendung.
Dies ist meine kurze Version von, wofür REST steht. Das Problem ist, dass es schwer zu implementieren ist. Ich persönlich sage RESTful, wenn ich mich auf die REST -Prinzipien beziehen möchte, aber ich weiß, dass ich das gesamte Konzept von REST nicht wirklich umsetze. Wir sagen nicht wirklich SOAPful, weil Sie entweder SOAP verwenden oder nicht. Ich denke, dass die meisten Leute dies nicht tun REST wie es der Ersteller Roy Fielding vorstellte, wir implementieren RESTful- oder REST-ähnliche Architekturen. Sie können seine Dissertation sehen, und Sie finden das Akronym REST, aber nicht das Wort RESTful.
REST ist eine Art von Softwarearchitektur für verteilte Software
Die Konformität mit den Einschränkungen von REST wird als "RESTful" bezeichnet.
Wird heute sehr häufig verwendet, um Webservices als Alternative zu SOAP zu erstellen.
Hier haben Sie einige Links, die Sie überprüfen können
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/
vielen Dank für die Antworten. Lesen Sie diesen Artikel von Alex Rodriguez, aus dem hervorgeht, dass ein RESTful-Webdienst 4 grundlegende Eigenschaften aufweist
Representational State Transfer (REST) ist ein Stil einer Softwarearchitektur für verteilte Hypermedia-Systeme wie das World Wide Web. Der Begriff Representational State Transfer wurde im Jahr 2000 von Roy Fielding 1 [2] in seiner Doktorarbeit eingeführt und definiert. Fielding ist einer der Hauptautoren der Hypertext Transfer Protocol (HTTP) -Spezifikationsversionen 1.0 und 1.1 .. Die Konformität mit den REST - Einschränkungen wird als "RESTful" bezeichnet. Quelle: Wikipedia
Webdienste sind im Wesentlichen Websites, deren Inhalt von Computerprogrammen verwendet wird, nicht von Menschen. REST ist eine Reihe von Architekturprinzipien, die festlegen, dass Web-Services HTTP und andere Web-Standards maximal nutzen sollten, damit Programme all das Gute erhalten, das die Leute bereits aus dem Web bekommen. REST wird häufig mit SOAP Web-Services und anderen "Remote Procedure Call" -orientierten Web Services verglichen.
Die Präsentationen von Stefan Tilkov zu REST bei Parleys.com sind ziemlich gut, vor allem diese .
Für ein Buch können Sie nicht besser sein als Richardson und Ruby's Restful Web Services .
Ein auf REST basierender Dienst wird als "RESTful-Dienst" bezeichnet.
Quelle Ich verlasse mich darauf, dass Folgendes veröffentlicht wird: Dr.Dobbs Archive
Im Richardson-Reifegradmodell sind 4 API-Ebenen definiert. Diese sind definiert als:
stufe 0: jedes System, das einen einzigen Endpunkt für alle seine Apis hat (SOAP oder RPC fallen in diese Kategorie). Stufe 0 apis kann auch "Befehlen" ähneln.
stufe 1: ein von ResourceUri beschriebenes System. Dies ist ein System, das mehrere entitätsbasierte URIs definiert (anstelle eines einzelnen Endpunkts wie bei Systemen der Stufe 0). Diese URIs können verschiedene http-Aktionen (POST, GET, PUT usw.) verwenden, um verschiedene Aktionen für diese Ressource zu implementieren.
level 2: aka Level 1 mit konformer Verwendung von Standard-HTTP-Methoden Verben und Multi-Status-Code-Antworten
stufe 3: aka Stufe 2 plus HATEOAS (Hypermedia in der Antwort enthalten, in der beschrieben wird, welche weiteren Anrufe Sie tätigen können)
Während Level 1, Level 2 und Level 3 als REST -Systeme betrachtet werden können, gelten nur die strengeren Level (alias Level 2 und Level 3) als REST-fähig.
Im Wesentlichen sind alle RESTful Apis REST Apis, aber nicht alle REST Apis sind RESTful
/ - Definition des Richardson-Reifegradmodells
Stellen Sie sich REST als architektonische "Klasse" vor, während RESTful die bekannte "Instanz" dieser Klasse ist.
Bitte beachten Sie das ""; es handelt sich hier nicht um "echte" Programmierobjekte.
REST (REpresentation State Transfer) ist eine Architektur, mit der WebServices erstellt werden.
und
RESTful ist das Schreiben von Diensten unter Verwendung der REST-Architekturen. RESTful Services stellen die Ressourcen zur Verfügung, um die Ziele für die Interaktion mit Clients zu identifizieren.