4195 Stimmen

Was genau ist RESTful-Programmierung?

Was genau ist RESTful-Programmierung?

3 Stimmen

Siehe auch die Antwort unter dem folgenden Link stackoverflow.com/a/37683965/3762855

4 Stimmen

REST ist vielleicht ein bisschen alt geworden ;) youtu.be/WQLzZf34FJ8

1 Stimmen

Weitere Informationen finden Sie unter folgendem Link news.ycombinator.com/item?id=3538585

139voto

Ravi Punkte 3062

Was ist REST?

REST steht für Representational State Transfer. (Manchmal wird es auch buchstabiert "ReST".) Es stützt sich auf eine zustandslose, Client-Server, cachefähige Kommunikationsprotokoll - und in praktisch allen Fällen wird das HTTP Protokoll verwendet.

REST ist ein Architekturstil für die Entwicklung vernetzter Anwendungen. Die Idee ist, dass anstelle von komplexen Mechanismen wie CORBA, RPC oder SOAP zu verwenden, um eine Verbindung zwischen Maschinen herzustellen, wird einfaches HTTP verwendet, um zwischen den Rechnern.

In vielerlei Hinsicht kann das World Wide Web selbst, das auf HTTP basiert, als als eine REST-basierte Architektur angesehen werden. RESTful-Anwendungen verwenden HTTP-Anfragen um Daten zu posten (erstellen und/oder aktualisieren), Daten zu lesen (z.B. Abfragen), und Daten zu löschen. REST verwendet also HTTP für alle vier CRUD (Erstellen/Lesen/Aktualisieren/Löschen) Operationen.

REST ist eine leichtgewichtige Alternative zu Mechanismen wie RPC (Remote Procedure Calls) und Webdiensten (SOAP, WSDL, etc.). Später werden wir sehen, wie viel einfacher REST ist.

Trotz seiner Einfachheit ist REST voll funktionsfähig; es gibt im Grunde Es gibt im Grunde nichts, was Sie in Webdiensten tun können, was nicht auch mit einer RESTful Architektur möglich ist. REST ist kein "Standard". Es wird nie eine W3C Empfehlung für REST geben, zum Beispiel. Und obwohl es REST Programmier-Frameworks gibt, ist die Arbeit mit REST so einfach, dass man mit Standardbibliotheksfunktionen in Sprachen wie Perl, Java oder Perl, Java oder C#.

Eine der besten Referenzen, die ich gefunden habe, als ich versuchte, die einfache wahre Bedeutung von Ruhe zu finden.

http://rest.elkstein.org/

93voto

dbr Punkte 158949

REST verwendet die verschiedenen HTTP-Methoden (hauptsächlich GET/PUT/DELETE), um Daten zu manipulieren.

Anstatt eine bestimmte URL zu verwenden, um eine Methode zu löschen (z.B., /user/123/delete ), würden Sie eine DELETE-Anfrage an die /user/[id] URL, um einen Benutzer zu bearbeiten, um Informationen über einen Benutzer abzurufen, senden Sie eine GET-Anfrage an /user/[id]

Stattdessen könnte zum Beispiel eine Reihe von URLs wie die folgenden aussehen.

GET /delete_user.x?id=123
GET /user/delete
GET /new_user.x
GET /user/new
GET /user?id=1
GET /user/id/1

Sie verwenden die HTTP-"Verben" und haben

GET /user/2
DELETE /user/2
PUT /user

72voto

Hank Gay Punkte 67607

Es geht um die Programmierung, bei der die Architektur Ihres Systems in die REST-Stil dargelegt von Roy Fielding in seine Dissertation . Da dies der architektonische Stil ist, der das Web (mehr oder weniger) beschreibt, sind viele Menschen daran interessiert.

Bonus-Antwort: Nein. Wenn Sie nicht gerade Software-Architektur als Akademiker studieren oder Webdienste entwerfen, gibt es eigentlich keinen Grund, diesen Begriff zu kennen.

50voto

Only You Punkte 2021

Ich würde sagen, bei der RESTful-Programmierung geht es um die Erstellung von Systemen (API), die dem REST-Architekturstil folgen.

Ich habe dieses fantastische, kurze und leicht verständliche Tutorial über REST von Dr. M. Elkstein gefunden und zitiere den wesentlichen Teil, der Ihre Frage zum größten Teil beantworten würde:

REST lernen: Ein Tutorial

REST ist eine Architekturstil für die Entwicklung vernetzter Anwendungen. Die Idee ist, dass anstelle von komplexen Mechanismen wie CORBA, RPC oder SOAP zu verwenden, um eine Verbindung zwischen Maschinen herzustellen, wird einfaches HTTP verwendet, um Anrufe zwischen Rechnern.

  • In vielerlei Hinsicht kann das World Wide Web selbst, das auf HTTP basiert, als eine REST-basierte Architektur betrachtet werden.

RESTful-Anwendungen verwenden HTTP-Anfragen zum Einstellen von Daten (Erstellen und/oder aktualisieren), Daten zu lesen (z. B. Abfragen) und Daten zu löschen. Somit verwendet REST HTTP für alle vier CRUD-Vorgänge (Create/Read/Update/Delete).

Ich denke nicht, dass Sie sich dumm fühlen sollten, weil Sie außerhalb von Stack Overflow nichts über REST gehört haben..., ich wäre in der gleichen Situation!; Antworten auf diese andere SO-Frage auf Warum wird REST jetzt so wichtig? könnte einige Gefühle lindern.

47voto

tompark Punkte 628

Ich entschuldige mich, wenn ich die Frage nicht direkt beantworte, aber es ist einfacher, all dies mit detaillierten Beispielen zu verstehen. Fielding ist aufgrund der vielen Abstraktionen und der Terminologie nicht leicht zu verstehen.

Hier gibt es ein recht gutes Beispiel:

Erklärungen zu REST und Hypertext: Spam-E der Spam-Reinigungsroboter

Und noch besser ist, dass es hier eine saubere Erklärung mit einfachen Beispielen gibt (die Powerpoint ist umfassender, aber das meiste ist auch in der HTML-Version zu finden):

http://www.xfront.com/REST.ppt o http://www.xfront.com/REST.html

Nachdem ich die Beispiele gelesen hatte, konnte ich verstehen, warum Ken sagt, dass REST hypertextgesteuert ist. Ich bin mir allerdings nicht sicher, ob er Recht hat, denn /user/123 ist ein URI, der auf eine Ressource verweist, und es ist mir nicht klar, dass es nicht REST-gerecht ist, nur weil der Client "out-of-band" davon weiß.

Das xfront-Dokument erklärt den Unterschied zwischen REST und SOAP, und auch das ist sehr hilfreich. Wenn Fielding sagt: " Das ist RPC. Es schreit nach RPC. "Es ist klar, dass RPC nicht RESTful ist, daher ist es nützlich, die genauen Gründe dafür zu kennen. (SOAP ist eine Art von RPC.)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X