Я разрабатывал веб-приложение, а затем остановился, чтобы подумать о том, как мой 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
or
foo.com/user
Конечному пользователю не требуется эта дополнительная многословность в URI. Однако какой из них визуально более привлекателен?
Я заметил некоторые другие вопросы здесь, в SO, об этом REST-бизнесе, но я был бы очень признателен за некоторые рекомендации по тому, что я изложил здесь, если это возможно.
Спасибо!
ОБНОВЛЕНИЕ:
Мне также хотелось бы высказать свое мнение по поводу:
/user/1
vs
/user/myUserName