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