Ich entwarf eine Web-App und überlegte dann, wie meine API als RESTful-Webdienst gestaltet werden sollte. Derzeit sind die meisten meiner URIs generisch und gelten möglicherweise für verschiedene Web-Apps:
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
Ich habe das Gefühl, dass ich hier viel falsch mache, nachdem ich mich bei SO und Google umgesehen habe.
Beginnen /logout
wir mit , vielleicht, weil ich eigentlich GET
nichts habe - es ist möglicherweise angemessener, POST
eine Anfrage zu stellen /logout
, die Sitzung zu zerstören und dann GET
umzuleiten. Und soll der /logout
Begriff bleiben?
Was ist mit /login
und /register
. Ich könnte zu ändern /register
, /registration
aber das ändert nichts an der grundsätzlichen Funktionsweise meines Dienstes - wenn er tiefere Probleme hat.
Ich bemerke jetzt, dass ich niemals eine /user
Ressource verfügbar mache. Vielleicht könnte das irgendwie genutzt werden. Nehmen Sie zum Beispiel den Benutzer myUser
:
foo.com/user/myUser
oder
foo.com/user
Der Endbenutzer benötigt diese zusätzliche Ausführlichkeit in der URI nicht. Welches ist jedoch optisch ansprechender?
Ich habe hier auf SO einige andere Fragen zu diesem REST-Geschäft bemerkt, aber ich würde mich sehr über eine Anleitung freuen, was ich hier dargelegt habe, wenn möglich.
Vielen Dank!
AKTUALISIEREN:
Ich hätte auch gerne einige Meinungen zu:
/user/1
vs.
/user/myUserName