Je concevais une application Web, puis je me suis arrêté pour réfléchir à la manière dont mon API devrait être conçue comme un service Web RESTful. Pour l'instant, la plupart de mes URI sont génériques et peuvent s'appliquer à diverses applications Web:
GET /logout // destroys session and redirects to /
GET /login // gets the webpage that has the login form
POST /login // authenticates credentials against database and either redirects home with a new session or redirects back to /login
GET /register // gets the webpage that has the registration form
POST /register // records the entered information into database as a new /user/xxx
GET /user/xxx // gets and renders current user data in a profile view
POST /user/xxx // updates new information about user
J'ai le sentiment que je fais beaucoup de mal ici après avoir fouillé sur SO et Google.
En commençant par /logout
, peut-être puisque je ne fais vraiment GET
rien - il peut être plus approprié de POST
demander /logout
, de détruire la session, puis de GET
rediriger. Et le /logout
terme devrait-il rester?
Qu'en est-il /login
et /register
. Je pourrais changer /register
pour /registration
mais cela ne modifie pas la façon dont mon service fonctionne fondamentalement - si elle a des problèmes plus profonds.
Je remarque maintenant que je n'expose jamais une /user
ressource. Peut-être que cela pourrait être utilisé d'une manière ou d'une autre. Par exemple, prenez l'utilisateur myUser
:
foo.com/user/myUser
ou
foo.com/user
L'utilisateur final n'a pas besoin de cette verbosité supplémentaire dans l'URI. Cependant, lequel est le plus attrayant visuellement?
J'ai remarqué quelques autres questions ici sur SO à propos de cette activité REST, mais j'apprécierais vraiment quelques conseils sur ce que j'ai présenté ici si possible.
Merci!
METTRE À JOUR:
J'aimerais aussi quelques avis sur:
/user/1
contre
/user/myUserName