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

2voto

Kürsat Aydinli Punkte 96

Ich würde sagen, dass ein wichtiger Baustein zum Verständnis von REST in den Endpunkten oder Mappings liegt, wie z. B. /customers/{id}/balance .

Sie können sich einen solchen Endpunkt als die Verbindungspipeline von der Website (Front-End) zu Ihrer Datenbank/Ihrem Server (Back-End) vorstellen. Über sie kann das Frontend Backend-Operationen durchführen, die in den entsprechenden Methoden eines REST-Mappings in Ihrer Anwendung definiert sind.

1voto

Sunny Sultan Punkte 832

Eine REST-API ist eine API-Implementierung, die sich an die architektonischen Vorgaben von REST hält. Sie fungiert als eine Schnittstelle. Die Kommunikation zwischen dem Client und dem Server erfolgt über HTTP. Eine REST-API nutzt die Vorteile der HTTP-Methoden, um die Kommunikation zwischen dem Client und dem Server herzustellen. REST ermöglicht es Servern auch, die Antworten zwischenzuspeichern, was die Leistung der Anwendung verbessert. Die Kommunikation zwischen dem Client und dem Server ist ein zustandsloser Prozess. Das bedeutet, dass jede Kommunikation zwischen dem Client und dem Server eine neue ist.

Es werden keine Informationen oder Speicher aus den vorherigen Kommunikationen übernommen. Jedes Mal, wenn ein Client mit dem Backend interagiert, muss er also auch die Authentifizierungsinformationen an das Backend senden. Dadurch kann das Backend herausfinden, ob der Client zum Zugriff auf die Daten berechtigt ist oder nicht.

Bei der Implementierung einer REST-API erhält der Client die Backend-Endpunkte, mit denen er kommunizieren kann. Dadurch werden das Backend und der Client-Code vollständig entkoppelt.

1voto

Richard Lee Punkte 1956

Um hier etwas Neues beizutragen, möchte ich den Link zu meinem Artikel teilen, der REST durch einen praktischen und objektiven Ansatz konzeptualisiert.

Ich gehe auf die wichtigsten Konzepte ein, wie zum Beispiel:

  • HATEOAS - Hypermedia As The Engine Of Application State,
  • Ressourcen und Darstellungen,
  • Adressierbarkeit,
  • Idempotenz in REST,
  • Richardson's REST Reifegradmodell.
  • Medienarten
  • API-Versionierung

Ich habe auch ein GitHub-Projekt erstellt, das Sie einfach mit Docker ausführen können und das den in diesem Artikel vorgestellten Inhalt abdeckt.

https://itnext.io/how-to-build-a-restful-api-a-deep-dive-into-rest-apis-215188f80854

0voto

Luke Puplett Punkte 38914

Bearbeiten

Lesen Sie die README hier und ich hoffe, Sie werden REST wirklich verstehen.

https://github.com/lukepuplett/surfdude-csharp/blob/master/README.md

--

Diese Antworten mit Beispielen für verknüpfte Ressourcen sind großartig, aber nur die Hälfte des Bildes.

Stellen Sie sich also vor, Sie entwerfen eine Website. Sie schreiben eine Geschichte,

Ich möchte eine Adresse nach Postleitzahl suchen können, damit ich eine Lieferadresse auswählen kann.

Dann bauen Sie die Website so auf, dass sie den Benutzer auf diese Reise mitnimmt, und versuchen, die Seiten in einem Workflow miteinander zu verknüpfen.

Eine Website, die zwar zu einer Adressensuche führt, die Besucher aber erst die Adresse in die Zwischenablage kopieren und dann zum Formular für die Lieferadresse zurückkehren lässt, wäre nicht sehr benutzerfreundlich.

Eine REST-API verwendet Muster, die wir im Web für eine Maschine-Maschine-Interaktion für selbstverständlich halten.

Die Suche nach einer Postleitzahl sollte nicht base/addresses/{postcode} und es kommt eine Sammlung zurück, auch wenn jede Adresse auf eine vollständige Adresse und einige Bearbeitungslinks verweist, denn das ist eine Sackgasse; der API-Kunde müsste erraten, wie die Adresse zu verwenden ist.

Stattdessen sollte das Motiv für das Feature in den Fluss eingebaut werden, in dem es verwendet wird, so dass die Reise wieder am Anfang endet:

1 GET /orders/123/shipping

  200 OK { Current shipping details + link to parent + link to address picker }

2  -> GET /orders/123/shipping/addresspicker

      200 OK { Link and form for searching for a postcode }

3   -> GET /orders/123/shipping/addresspicker?postcode=tn11tl

       200 OK { List of addresses each with link to pick it }

4    -> POST /orders/123/shipping/addresspicker?postcode=tn11tl&pickNo=3

        200 OK { Current shipping details + link to parent + link to address picker }

Es handelt sich um eine Benutzerreise, und am Ende kann man die Auswirkungen des Flusses auf die Bestellung sehen.

Die HTTP-Anfrage/Antwort ist nicht unbedingt Teil von REST, aber ich glaube nicht, dass jemand jemals eine REST-Anwendung ohne HTTP gesehen hat.

Diese URLs können aus beliebigen Zeichen bestehen, sie sind nur Bezeichner, ich habe sie hübsch gemacht, weil sie für Menschen sinnvoll sind. Eine Maschine würde die rel um herauszufinden, was sie tun, und nicht von einer lesbaren href .

-3voto

Marcus Thornton Punkte 5451

REST ist ein verteiltes System (wie WWW) Software-Architektur-Stil, können Sie sich vorstellen, dass es eine gut gestaltete Web-Anwendung Regeln: eine Gruppe von Internet-Webseiten (eine virtuelle Zustandsmaschine), in denen Hyperlink durch Anklicken Link (Zustandsübergang), das Ergebnis ist die nächste Web-Seite (was bedeutet, den nächsten Zustand der Anwendung).

REST beschreibt das Netzsystem, das aus drei Teilen besteht:

  1. Datenelemente (Ressource, Ressourcenkennung, Darstellung)
  2. Anschlüsse (Client, Server, Cache, Resolver, Tunnel)
  3. Komponenten (Ursprungsserver, Gateway, Proxy, Benutzeragent)

REST muss die folgenden Bedingungen erfüllen:

  1. Der Status der Anwendungsfunktionalität wird in Ressourcen aufgeteilt
  2. Jede Ressource, die als Hyperlink verwendet wird, hat eine Positionierungssyntax (d.h. im WWW URI)
  3. Alle Ressourcen haben eine einheitliche Schnittstelle zwischen dem Client und dem Übergangszustand der Ressource, einschließlich:
    1. Eine begrenzte Anzahl genau definierter Operationen (z.B. in HTTP GET / POST / PUT / DELETE)
    2. Eine begrenzte Anzahl von Inhaltsformaten, die ausführbaren Code enthalten können (z. B. im WWW Javascript)

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