architecture - work - unterschied rest und restful




Was ist der Unterschied zwischen REST & RESTful? (9)

"REST" ist ein architektonisches Paradigma. "RESTful" beschreibt die Verwendung dieses Paradigmas.

Was ist der Unterschied zwischen einem REST-System und einem System, das RESTful ist?

Von einigen Dingen, die ich read habe, sind read meisten sogenannten REST-Dienste eigentlich RESTful-Dienste. Was ist der Unterschied zwischen den beiden?


Danke für die Antworten. Lesen Sie http://www.ibm.com/developerworks/webservices/library/ws-restful/ von Alex Rodriguez, der darauf hinweist, dass ein REST-fähiger Webdienst vier grundlegende Merkmale aufweist:

  1. Verwenden Sie HTTP-Methoden explizit.
  2. Sei staatenlos.
  3. Expose verzeichnisstrukturähnliche URIs.
  4. Übertragen Sie XML, JavaScript Object Notation (JSON) oder beides.

Es gibt 4 API-Ebenen, die im Richardson-Reifegradmodell definiert sind. Diese sind definiert als:

  • Stufe 0: jedes System, das für alle seine Apis einen einzelnen Endpunkt hat (SOAP oder RPC fallen in diese Kategorie). Apis der Stufe 0 können auch "Befehlen" ähneln.

  • Level 1: Ein von ResourceUri beschriebenes System. Dies ist ein System, das mehrere auf Entitäten basierende URIs definiert (anstatt einen einzigen Endpunkt zu haben, wie es Systeme der Ebene 0 tun würden). Diese URIs können verschiedene http-Aktionen (POST, GET, PUT usw.) verwenden, um verschiedene Aktionen gegen diese Ressource zu implementieren.

  • Level 2: aka Level 1 w / a konforme Verwendung von Standard-HTTP-Methoden / Verben und Multi-Status-Code-Antworten

  • Level 3: aka Level 2 plus HATEOAS (Hypermedia in der Antwort enthalten, die zusätzliche Anrufe beschreibt, die Sie vornehmen können)

Während Level 1, Level 2 und Level 3 als REST-Systeme betrachtet werden können, gelten nur die strengeren Level (auch Level 2 und Level 3) als REST-konform.

Im Wesentlichen sind also alle REST-Apis REST-Apis, aber nicht alle REST-Apis sind REST-fähig

Definition des Richardson-Reifegradmodells



REST-basierte Services / Architektur VC RESTFUL Services / Architektur

Um diese 2 zu unterscheiden oder zu vergleichen, sollten Sie wissen, was REST ist. REST (Representational State Transfer) ist im Grunde ein architektonischer Entwicklungsstil mit einigen Prinzipien ...

  • Es sollte staatenlos sein

  • Es sollte auf alle Ressourcen vom Server zugreifen, die nur URI verwenden

  • Es hat keine eingebaute Verschlüsselung

  • Es hat keine Sitzung

  • Es verwendet ein und nur ein Protokoll, das HTTP ist

  • Um CRUD-Operationen auszuführen, 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-basierte Dienste folgen einigen der oben genannten Prinzipien und nicht alle, während RESTFUL bedeutet, dass es allen oben genannten Prinzipien folgt.

Es ähnelt dem Konzept objektbasierter Sprachen (es unterstützt alle OOPS-Konzepte, zB C ++, C #) und objektorientierten Sprachen (Es unterstützt einige der OOP-Funktionen wie JavaScript, VB). Beispiele sind ASP Dot NET MVC 4 ist 'REST-basiert' und Microsoft WEB API sind 'RESTFul'. 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 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, also der HTTPResponse, zurückgeben.

Aber zur gleichen Zeit in WEB API

  • Wir können die Sitzung verwenden

  • Wir können es zu einem Zustand machen

  • Wir können ein Video oder ein Bild von der Controller-Aktionsmethode zurückgeben, die im Grunde gegen die REST-Prinzipien verstößt

Aus diesem Grund ist MVC REST-basiert, während WEB API alle oben genannten Prinzipien unterstützt und RESTFul ist.


Representational State Transfer (REST) ​​ist eine Art von 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 Dissertation eingeführt und definiert. Fielding ist einer der Hauptautoren der HTTP-Spezifikation (Hypertext Transfer Protocol) Version 1.0 und 1.1. Die Übereinstimmung mit den REST-Einschränkungen wird als "RESTful" bezeichnet. 1


Wie Jason in den Kommentaren sagte, wird RESTful nur als ein Adjektiv verwendet, das etwas beschreibt, das die REST-Einschränkungen respektiert.


en.wikipedia.org/wiki/Representational_State_Transfer ist eine Art von Softwarearchitektur. Wie in einer Dissertation von Roy Fielding beschrieben, ist REST ein "Architekturstil", der im Wesentlichen die vorhandenen Technologien und Protokolle des Webs ausnutzt.

RESTful wird normalerweise verwendet, um auf Webdienste Bezug zu nehmen, die eine solche Architektur implementieren.


REST zeigt die Softwarearchitektur, die auf eine Client-Server-Kommunikation angewendet wird.

RESTful implementieren die REST-Architektur und das Gateway für den Client, dass sie REST verwenden.





rest