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

19voto

Nathan Andelin Punkte 189

Wenn ich die ursprüngliche Dissertation über REST auf nur 3 kurze Sätze reduzieren müsste, denke ich, dass der folgende Satz das Wesentliche wiedergibt:

  1. Ressourcen werden über URLs angefordert.
  2. Protokolle sind auf das beschränkt, was Sie mit Hilfe von URLs kommunizieren können.
  3. Metadaten werden als Name-Wert-Paare übergeben (Post-Daten und Query-String-Parameter).

Danach kann man leicht in Debatten über Anpassungen, Kodierungskonventionen und bewährte Verfahren verfallen.

Interessanterweise werden in der Dissertation keine HTTP POST-, GET-, DELETE- oder PUT-Operationen erwähnt. Das muss eine spätere Interpretation der "besten Praxis" für eine "einheitliche Schnittstelle" durch jemanden sein.

Wenn es um Webdienste geht, scheint es, dass wir einen Weg brauchen, um zwischen WSDL- und SOAP-basierten Architekturen zu unterscheiden, die der Schnittstelle einen erheblichen Overhead und wohl auch viel unnötige Komplexität hinzufügen. Außerdem erfordern sie zusätzliche Frameworks und Entwicklertools für die Implementierung. Ich bin mir nicht sicher, ob REST der beste Begriff ist, um zwischen vernünftigen Schnittstellen und übermäßig konstruierten Schnittstellen wie WSDL und SOAP zu unterscheiden. Aber wir brauchen etwas.

18voto

suing Punkte 2638

REST ist ein architektonisches Muster und ein Stil zur Erstellung verteilter Anwendungen. Es handelt sich nicht um einen Programmierstil im engeren Sinne.

Zu sagen, dass man den REST-Stil verwendet, ist vergleichbar mit der Aussage, dass man ein Haus in einem bestimmten Stil gebaut hat: z. B. Tudor oder viktorianisch. Sowohl REST als Software-Stil als auch Tudor oder viktorianisch als Hausstil können durch die Eigenschaften und Einschränkungen definiert werden, die sie ausmachen. So muss REST beispielsweise eine Client-Server-Trennung aufweisen, bei der die Nachrichten selbstbeschreibend sind. Häuser im Tudor-Stil haben überlappende Giebel und steil geneigte Dächer mit nach vorne gerichteten Giebeln. In Roys Dissertation erfahren Sie mehr über die Einschränkungen und Eigenschaften, die REST ausmachen.

REST hat es im Gegensatz zu Home Styles schwer, konsequent und praktisch angewendet zu werden. Dies mag beabsichtigt gewesen sein. Die tatsächliche Umsetzung bleibt dem Designer überlassen. Es steht Ihnen also frei, zu tun, was Sie wollen, solange Sie die in der Dissertation dargelegten Einschränkungen einhalten, wenn Sie REST-Systeme erstellen.

Bonus:

Das gesamte Web basiert auf REST (oder REST basiert auf dem Web). Als Webentwickler sollten Sie sich dessen bewusst sein, obwohl es nicht notwendig ist, um gute Webanwendungen zu schreiben.

17voto

minghua Punkte 5171

Ich denke, der Sinn von restful ist die Abtrennung der Zustandsabhängigkeit in eine höhere Schicht bei der Nutzung des Internets (Protokoll) als zustandslose Transportschicht . Die meisten anderen Ansätze vermischen die Dinge.

Es ist der beste praktische Ansatz, um die grundlegenden Veränderungen der Programmierung im Internet-Zeitalter zu bewältigen. Was die grundlegenden Veränderungen betrifft, so hat Erik Meijer hier eine Diskussion über die Ausstellung: http://www.infoq.com/interviews/erik-meijer-programming-language-design-effects-purity#view_93197 . Er fasst sie als die fünf Effekte zusammen und präsentiert eine Lösung, indem er die Lösung in einer Programmiersprache entwirft. Die Lösung könnte auch auf der Plattform- oder Systemebene erreicht werden, unabhängig von der Sprache. Restful kann als eine der Lösungen angesehen werden, die in der derzeitigen Praxis sehr erfolgreich ist.

Mit Restful Style können Sie den Zustand der Anwendung über ein unzuverlässiges Internet abrufen und manipulieren. Wenn die aktuelle Operation fehlschlägt, um den korrekten und aktuellen Status zu erhalten, ist das Null-Validierungsprinzip erforderlich, damit die Anwendung fortgesetzt werden kann. Gelingt es ihr nicht, den Zustand zu verändern, verwendet sie in der Regel mehrere Bestätigungsstufen, um die Dinge korrekt zu halten. In diesem Sinne ist Rest selbst keine vollständige Lösung, sondern benötigt die Funktionen in anderen Teilen des Webanwendungs-Stacks, um seine Arbeit zu unterstützen.

Unter diesem Gesichtspunkt ist der Rest-Stil nicht wirklich an das Internet oder die Webanwendung gebunden. Es ist eine grundlegende Lösung für viele Programmiersituationen. Es ist auch nicht einfach, es macht nur die Schnittstelle wirklich einfach, und kommt mit anderen Technologien erstaunlich gut zurecht.

Nur meine 2c.

Edit: Zwei weitere wichtige Aspekte:

15voto

Jaider Punkte 13198

REST definiert 6 architektonische Beschränkungen, die jeden Webdienst - einen echte RESTful-API .

  1. Einheitliche Schnittstelle
  2. Client-Server
  3. Zustandslos
  4. Cachefähig
  5. Mehrschichtiges System
  6. Code auf Anfrage (optional)

https://restfulapi.net/rest-architectural-constraints/

15voto

Chris DaMour Punkte 3257

Alte Frage, neue Art der Beantwortung. Es gibt eine Menge Missverständnisse über dieses Konzept. Ich versuche immer, mich daran zu erinnern:

  1. Strukturierte URLs und Http-Methoden/Verbs sind nicht die Definition von ruhevoller Programmierung.
  2. JSON ist keine aufbauende Programmierung
  3. RESTful-Programmierung ist nichts für APIs

Ich definiere ruhevolle Programmierung als

Eine Anwendung ist "restful", wenn sie Ressourcen (d. h. die Kombination aus Daten und Steuerelementen für Zustandsübergänge) in einem Medientyp bereitstellt, den der Client versteht.

Um ein ruhevoller Programmierer zu sein, muss man versuchen, Anwendungen zu entwickeln, die es Akteuren ermöglichen, Dinge zu tun. Nicht nur die Datenbank offenlegen.

Zustandsübergangskontrollen sind nur sinnvoll, wenn sich Client und Server auf eine Medientyp-Darstellung der Ressource einigen. Andernfalls gibt es keine Möglichkeit zu wissen, was ein Steuerelement ist und was nicht, und wie man ein Steuerelement ausführt. IE, wenn die Browser nicht wüssten <form> Tags in Html, dann gäbe es nichts, was Sie in Ihrem Browser in den Übergangszustand überführen könnten.

Ich will keine Eigenwerbung machen, aber ich gehe in meinem Vortrag sehr ausführlich auf diese Ideen ein http://techblog.bodybuilding.com/2016/01/video-what-is-restful-200.html .

Ein Auszug aus meinem Vortrag handelt von dem oft zitierten Richardson Reifegradmodell. Ich glaube nicht an die Stufen, man ist entweder RESTful (Stufe 3) oder nicht, aber was ich daran hervorheben möchte, ist, was jede Stufe für Sie auf dem Weg zu RESTful tut

annotated richardson maturity model

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