Tout cela peut sembler très nouveau, mais j'essaie de me concentrer sur la conception d'un site Web qui est complètement RESTful. Je comprends l'application du design RESTful à des choses comme les utilisateurs, les photos, les articles de blog, etc. parce que je les considère comme des "objets".
Mais qu'en est-il d'une page "à propos de nous". De quel type de ressource s'agit-il? Est-ce même une ressource au sens RESTful du terme? Par ailleurs, disons que je vais à l'URL "http://www.example.com/", quelle ressource est-ce que je demande? La ressource d'index?
web-development
web-applications
web
rest
http
TaylorOtwell
la source
la source
Réponses:
Le modèle de ressource de site Web RESTful le plus courant que je vois consiste à ajouter une vue à l'URI:
Lorsqu'il n'y a pas de vue , vous diffusez simplement une vue par défaut. Dans ton cas:
example.com
retourne la vue par défaut de la ressource de niveau supérieur - votre site Web.aboutus
pourrait être un identifiant nommé pour une ressource dans la portée du CMS de niveau supérieur. *Cela étant dit, il est parfois préférable de truquer un peu pour une meilleure sémantique. Par exemple, StackOverflow utilise RESTful / questions / [id] pour les questions, mais la page Poser une question est / questions / ask qui n'est pas très RESTful (
ask
n'est pas unequestions
ressource) mais a beaucoup de sens pour utiliser de simples mortels.* Dans les CMS au niveau supérieur, le type de ressource est souvent, mais pas toujours, supprimé car il est redondant.
la source
Gardez à l'esprit que la conception RESTful en soi est destinée à fournir une norme par laquelle le Web devient uniformément programmable. Il n'est pas toujours approprié ou utile de transformer tout votre site Web humain en une sémantique REST pure.
Lorsque vous avez des ressources, considérer leurs représentations est utile. Il est également important de prendre en compte les autres principes de conception de REST, tels que les statelessnes, et leur impact sur les performances et la convivialité de votre site Web. Mais rappelez-vous que REST est un outil, pas un objectif. C'est un moyen, pas une fin.
Utilisez la sémantique RESTful lorsque cela est utile , après avoir compris leur objectif et leurs avantages, et ne transpirez pas si votre site n'est pas parfaitement RESTful. Ce serait presque impossible pour n'importe quel site non trivial de toute façon.
TL; DR : REST est un outil. Utilisez-le quand et où cela est utile, mais ne vous y limitez pas.
la source
Complexe. Rien de mal avec une ressource qui a des composants, des morceaux ou une structure.
Les ressources ne sont pas des «lignes de base de données relationnelles» ou d'autres éléments atomiques. Ce sont des ressources.
Les bases de données orientées document gèrent cela plus facilement car une ressource peut être plus grande et plus structurée.
Oui.
Non.
Vous demandez la ressource "aboutus". Il est possible (mais étrange) qu'une ressource soit un singleton. Pas d'ID et pas de "liste".
http://www.example.com/aboutus/?format=xml
Renvoie un document XML complexe avec beaucoup de morceaux et de pièces. Aucun problème avec cela.
Cela ne signifie pas grand-chose dans un sens "reposant". La page "index" est destinée aux personnes. Une application qui utilise une API RESTful est conçue pour demander des types spécifiques de ressources.
la source
Je garderais mon opinion indépendante du back-end. Vous pouvez demander au back-end des ressources telles que des choses qui vont sur l'accordéon, la barre de navigation et d'autres objets qui se rapportent au corps. Cependant, vous devez laisser le traitement de ces représentations de ressources à votre code client, qui les rendra éventuellement selon les exigences.
la source
La ressource pour "About Us" est ... Us :) euh, vous. Pensez aux attributs de vous que vous souhaitez faire connaître et enroulez-les comme un nom avec une représentation.
Ces valeurs ne doivent pas provenir d'une base de données ... ce sera probablement un tas de valeurs de chaîne, et celles-ci peuvent provenir de config, ou peut-être même codées en dur dans une classe.
la source