Ich habe einige Definitionen und Diskussionen zu REST und / oder RESTful-Anwendungen gelesen, verstehe aber immer noch nicht die wahre Bedeutung.
Normalerweise arbeite ich mit Apps, die entweder Daten über GET abrufen oder Daten über POST an einen Webdienst senden (normalerweise ein PHP-Skript), der dann entweder Daten aus der Datenbank abruft oder in die Datenbank schreibt.
Ist das eine RESTful-App? Wenn nicht, was wäre eine RESTful-App? Was ist der Unterschied zwischen dem RESTful-Konzept und dem Konzept, mit dem ich bisher gearbeitet habe? Bitte erläutern Sie anhand eines Beispiels.
Außerdem spricht jemand über REST und jemand über RESTful-Apps. Ich fand heraus, dass sich der Begriff REST auf das theoretische Konzept bezieht, während RESTful verwendet wird, wenn wir über die spezifische App sprechen. Ist das richtig oder gibt es echte Unterschiede zwischen REST- und RESTful-Apps?
Antworten:
Die Hauptmerkmale einer RESTful-Anwendung sind: Die gesamte Kommunikation erfolgt über http GET, POST, PUT, DELETE, und alle Elemente werden über eine Standard-URL des Formulars adressiert,
http://your.site.com/salesapp/salesperson/0000001/details
dh nur eine reine URL ohne Parameter usw. Die URL identifiziert das Objekt, das GET , POST, PUT, DELETE gibt an, was Sie damit machen möchten.Der Hauptgrund dafür ist, dass Sie automatisch einen zustandslosen Dienst haben, der lastausgeglichen, ausgefallen usw. usw. sein kann.
Die bloße Einfachheit des Schemas sorgt für eine sehr saubere Benutzeroberfläche, die den Client vollständig von einer bestimmten Back-End-Implementierung entkoppelt.
quelle
REST steht für Representational State Transfer. Wenn Ihre Software den REST-Einschränkungen entspricht, wird sie als REST- konform eingestuft .
Nun, da ich schamlos aus Wikipedia herausgerissen habe, was bedeutet das wirklich? Es bedeutet effektiv, die eingebauten HTTP-Befehle wie GET, POST, PUT, DELETE und einige andere seltenere zu verwenden, um zwischen einem Client und einem Server hin und her zu kommunizieren.
Was Sie tun, klingt wie eine RESTFul-App. Es gibt jedoch einen großen Unterschied zwischen gut gestalteten und überladenen RESTFul-Webdiensten. Beispielsweise könnte der PHP-Code am anderen Ende des GET eine Statusänderung ausführen, die als falsch angesehen wird, da ein GET als schreibgeschützte Operation angesehen wird. Es gibt subtile Unterschiede zwischen der Verwendung von POST (neu) und PUT (ersetzen).
Der Wikipedia-Artikel dazu ist wirklich gut, also höre ich hier auf.
quelle
Bevor Sie fortfahren, kann Ihnen diese verwandte Frage helfen
Der Unterschied zwischen REST und RESTful ist einfach die Semantik. REST ist ein Architekturstil, der auf eine Client-Server-Beziehung angewendet wird. Mit RESTful können Sie Ihren Kunden einfach mitteilen, dass Sie REST verwenden.
Viele Webanwendungen behaupten, REST- konform zu sein, entsprechen jedoch nur teilweise den REST-Einschränkungen (wie auch Martijn Verburg in seiner Antwort erwähnt hat). Ich werde sie hier nur auflisten, aber ich rate Ihnen dringend, den Artikel zu lesen:
Da Sie erwähnen, dass Sie auf der Clientseite arbeiten, kann es hilfreich sein zu sehen, was eine REST-Architektur von Ihnen als verbindendem Client verspricht und erwartet. Obwohl REST nicht HTTP ist, ist es bei weitem das beliebteste Protokoll, das REST unterstützt. Daher werde ich mein Beispiel darauf aufbauen.
Von Ihrem Kunden wird erwartet, dass er:
<link rel="pay" href="http://example.org/orders(1)/payment">
HTML einen Statusübergang zum Erstellen einer Zahlungsressource durch einen POST mit einem Text aus XML ausdrückt, der die Zahlungsdetails wie die Kreditkartennummer darstellt , Menge und so weiter)Wenn dies der Fall ist, kann davon ausgegangen werden, dass es sich um einen REST-Client handelt, Sie möchten ihn möglicherweise als "RESTful-App" bezeichnen. Dies würde jedoch eher bedeuten, dass Sie REST auf der Clientseite verwenden der Begriff.
quelle
RESTful bedeutet, dass die Schnittstelle eine Reihe von Objekten ist, die gelesen und aktualisiert (und möglicherweise gelöscht) werden können. Das heißt, es gibt keine Abfragen mit mehreren Parametern (der einzige Parameter ist das Objekt, das Sie lesen möchten), und es gibt nur einen Operationstyp, der etwas auf dem Server ändert, nämlich das Hochladen eines neuen Status.
Diese Einschränkungen stellen sicher, dass alle Anforderungen nicht vorübergehend sind (das mehrmalige Senden hat keine zusätzlichen Auswirkungen auf das einmalige Senden). Dies ist wichtig, da das Netzwerk möglicherweise jederzeit ausfällt und keine Anforderung oder Antwort übermittelt. Bei nicht vorübergehenden Anforderungen senden Sie es einfach erneut und müssen keine komplizierte Wiederherstellung durchführen.
quelle