architecture api - Was ist der Unterschied zwischen REST & RESTful?




und stateless (12)

REST ist eine Art von Softwarearchitektur für verteilte Software

Die Übereinstimmung mit den REST-Einschränkungen wird als "RESTful" bezeichnet.

Sehr verwendet heute, um Web-Services als eine Alternative zu SOAP zu erstellen.

Hier haben Sie einige Links zu überprüfen

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/

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?


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


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


dissertation

Dies ist das ursprüngliche Dokument, das die Idee von RESTful vernetzten Anwendungen erstellt hat. Zitiert in Referenzen des REST-Wikipedia-Artikels. Er war auch Co-Autor des HTTP RFC.


Webdienste sind im Wesentlichen Websites, deren Inhalt von Computerprogrammen und nicht von Menschen genutzt wird. REST ist eine Reihe von Architekturprinzipien, die festlegen, dass Webdienste HTTP und andere Webstandards maximal nutzen sollten, damit Programme all die guten Dinge erhalten, die die Leute bereits aus dem Internet herausholen können. REST wird oft SOAP-Webdiensten und anderen Web-Services mit "Remote Procedure Call" gegenübergestellt.

Stefan Tilkovs Präsentationen zu REST bei Parleys.com sind ziemlich gut, besonders diese .

Für ein Buch kann man nicht besser sein als Richardson und Ruby's Restful Web Services .


Ein auf REST basierender Dienst wird als "RESTful service" bezeichnet.

Quelle Ich verlasse mich auf das Posten: Dr.Dobbs Archiv


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.

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-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.


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.


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


Dies ist eine erstaunlich lange "Diskussion" und dennoch verwirrend, um es gelinde auszudrücken.

IMO:

1) Es gibt kein ruhiges Programmieren ohne großen Joint und viel Bier :)

2) Representational State Transfer (REST) ​​ist ein in der Dissertation von Roy Fielding spezifizierter Architekturstil . Es gibt eine Reihe von Einschränkungen. Wenn Ihr Service / Kunde diese respektiert, ist dies RESTful. Das ist es.

Sie können die Einschränkungen (signifikant) zusammenfassen auf:

  • Staatenlose Kommunikation
  • HTTP-Spezifikationen beachten (wenn HTTP verwendet wird)
  • kommuniziert klar die übertragenen Inhaltsformate
  • Verwenden Sie Hypermedia als Engine des Anwendungsstatus

Es gibt einen weiteren roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven der die Dinge schön erklärt.

Viele Antworten kopierten / fügten gültige Informationen ein, mischten sie und fügten einige Verwirrung hinzu. Die Leute reden hier über Level, über RESTFul-URIs (so etwas gibt es nicht!), Wenden die HTTP-Methoden GET, POST, PUT an ... REST geht es nicht oder nicht nur darum.

Zum Beispiel Links - es ist schön, eine schön aussehende API zu haben, aber am Ende kümmert sich der Client / Server nicht wirklich um die Links, die Sie erhalten / senden. Es ist der Inhalt, auf den es ankommt.

Am Ende sollte jeder RESTful-Client in der Lage sein, einen beliebigen RESTful-Service in Anspruch zu nehmen, sofern das Inhaltsformat bekannt ist.







architecture rest