Das alles mag sehr neu erscheinen, aber ich versuche, mich mit dem Entwerfen einer Website zu beschäftigen, die absolut REST-konform ist. Ich verstehe das Anwenden von RESTful-Design auf Dinge wie Benutzer, Fotos, Blog-Posts usw., weil ich sie als "Objekte" betrachte.
Aber was ist mit einer "Über uns" -Seite? Was für eine Ressource ist das? Ist es überhaupt eine Ressource im wahrsten Sinne des Wortes? Angenommen, ich gehe zur URL "http://www.example.com/". Nach welcher Ressource frage ich? Die Indexressource?
web-development
web-applications
web
rest
http
TaylorOtwell
quelle
quelle
Antworten:
Das häufigste RESTful-Website-Ressourcenmuster, das ich sehe, ist das Hinzufügen einer Ansicht zum URI:
Wenn keine Ansicht vorhanden ist , stellen Sie einfach eine Standardansicht bereit. In deinem Fall:
example.com
Rückgabe der Standardansicht für die Ressource der obersten Ebene - Ihre Website.aboutus
sich auch um eine benannte Kennung für eine Ressource im Bereich des CMS der obersten Ebene handeln. *Abgesehen davon ist es manchmal am besten, ein wenig zu fummeln, um eine bessere Semantik zu erzielen. Zum Beispiel verwendet StackOverflow das RESTful / question / [id] für Fragen, aber die Seite Ask Question ist / question / ask, was nicht sehr RESTful ist (
ask
keinequestions
Ressource), aber sehr sinnvoll ist, nur Sterbliche zu verwenden.* In CMS auf oberster Ebene wird der Ressourcentyp häufig, aber nicht immer entfernt, da er redundant ist.
quelle
Beachten Sie, dass RESTful Design per se einen Standard bieten soll, nach dem das Web einheitlich programmierbar wird. Es ist nicht immer angemessen oder nützlich, Ihre gesamte Website mit menschlichem Gesicht in reine REST-Semantik umzuwandeln.
Wenn Sie über Ressourcen verfügen, ist es hilfreich, deren Darstellungen zu berücksichtigen. Es ist auch wichtig, die anderen Gestaltungsprinzipien von REST zu berücksichtigen, z. B. Statuslosigkeit, und wie sie sich auf die Leistung und Benutzerfreundlichkeit Ihrer Website auswirken. Aber denken Sie daran, dass REST ein Werkzeug ist, kein Ziel. Es ist ein Mittel, kein Zweck.
Verwenden Sie RESTful-Semantik, wo dies nützlich ist , nachdem Sie deren Zweck und Vorteile verstanden haben, und schwitzen Sie nicht, wenn Ihre Site nicht perfekt RESTful ist. Es wäre auf jeden Fall für eine nicht triviale Site fast unmöglich.
TL; DR : REST ist ein Werkzeug. Verwenden Sie es, wann und wo es nützlich ist, aber seien Sie nicht daran gebunden.
quelle
Komplex. An einer Ressource mit Komponenten, Teilen oder Strukturen ist nichts auszusetzen.
Ressourcen sind keine "relationalen Datenbankzeilen" oder andere atomare Dinge. Sie sind Ressourcen.
Dokumentorientierte Datenbanken behandeln dies eleganter, da eine Ressource größer und strukturierter sein kann.
Ja.
Nein.
Sie fragen nach der Ressource "aboutus". Es ist möglich (aber seltsam), dass eine Ressource ein Singleton ist. Keine ID und keine "Liste".
http://www.example.com/aboutus/?format=xml
Gibt ein komplexes XML-Dokument mit vielen Teilen zurück. Daran ist nichts auszusetzen.
Bedeutet nicht viel im "RESTful" Sinne. Die "Index" -Seite ist für Personen. Eine Anwendung, die eine RESTful-API verwendet, fordert bestimmte Arten von Ressourcen an.
quelle
Ich würde meine Ansicht unabhängig vom Backend halten. Sie können das Back-End nach Ressourcen wie Dingen auf dem Akkordeon, der Navigationsleiste und anderen Objekten fragen, die sich auf den Körper beziehen. Sie sollten die Verarbeitung dieser Ressourcendarstellungen jedoch Ihrem Client-Code überlassen, der sie schließlich gemäß den Anforderungen rendert.
quelle
Die Ressource für "Über uns" ist ... Us :) ähm, Sie. Denken Sie an die Attribute von Ihnen, die Sie veröffentlichen möchten, und rollen Sie diese als Substantiv mit einer Darstellung auf.
Diese Werte müssen nicht aus einer Datenbank stammen ... es handelt sich wahrscheinlich um eine Reihe von Zeichenfolgenwerten, und diese können aus der Konfiguration stammen oder sogar in einer Klasse fest codiert sein.
quelle