Я разрабатывал веб-приложение, а затем остановился, чтобы подумать о том, как мой api должен быть спроектирован как веб-сервис RESTful. На данный момент большинство моих URI являются общими и могут применяться к различным веб-приложениям:
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
У меня такое чувство, что я делаю здесь много не так после того, как ковырялся в SO и Google.
Начнем с того, что /logout
, возможно, так как я на самом деле GET
ничего не имею - это может быть более подходящим для POST
запроса /logout
, уничтожить сеанс, а затем GET
перенаправить. И должен ли /logout
срок остаться?
Насчет /login
и /register
. Я мог бы перейти /register
на, /registration
но это не повлияет на фундаментальную работу моего сервиса - если у него есть более серьезные проблемы.
Теперь я замечаю, что никогда не раскрываю /user
ресурс. Возможно, это можно как-то использовать. Например, возьмем пользователя myUser
:
foo.com/user/myUser
или
foo.com/user
Конечному пользователю не требуется эта дополнительная многословность в URI. Однако какой из них визуально более привлекателен?
Я заметил несколько других вопросов здесь, в SO, об этом бизнесе REST, но я был бы очень признателен за некоторые рекомендации по тому, что я здесь изложил, если это возможно.
Спасибо!
ОБНОВИТЬ:
Мне также хотелось бы высказать свое мнение по поводу:
/user/1
против
/user/myUserName