Я разрабатывал веб-приложение, а затем остановился, чтобы подумать о том, как мой 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, но я был бы очень признателен за некоторые рекомендации относительно того, что я здесь изложил, если это возможно.
Спасибо!
UPDATE:
Мне также хотелось бы получить некоторые мнения о:
/user/1
против
/user/myUserName