Stavo progettando un'app Web e poi mi sono fermato a pensare a come la mia API dovrebbe essere progettata come servizio Web RESTful. Per ora, la maggior parte dei miei URI sono generici e potrebbero essere applicati a varie app 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
Ho la sensazione che sto facendo molto di sbagliato qui dopo aver dato un'occhiata a SO e google.
Iniziando con /logout
, forse dal momento che non ho davvero GET
nulla, potrebbe essere più appropriato POST
una richiesta /logout
, distruggere la sessione e quindi GET
il reindirizzamento. E il /logout
termine dovrebbe restare?
Che mi dici di /login
e /register
. Potrei cambiare /register
in, /registration
ma ciò non cambia il modo in cui funziona fondamentalmente il mio servizio, se ha problemi più profondi.
Noto ora che non ho mai esposto una /user
risorsa. Forse potrebbe essere utilizzato in qualche modo. Ad esempio, prendi l'utente myUser
:
foo.com/user/myUser
o
foo.com/user
L'utente finale non richiede quel livello di dettaglio extra nell'URI. Tuttavia, quale è visivamente più accattivante?
Ho notato alcune altre domande qui su SO su questo business REST, ma apprezzerei davvero alcune indicazioni su ciò che ho esposto qui, se possibile.
Grazie!
AGGIORNARE:
Vorrei anche alcune opinioni su:
/user/1
vs
/user/myUserName