Полностью спроектировать / войти в систему или / зарегистрировать ресурсы REST?

Я разрабатывал веб-приложение, а затем остановился, чтобы подумать о том, как мой 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
108
задан suci 5 January 2016 в 04:14
поделиться