Список пользователей я получаю так: GET /admin/users
Вторая страница: GET /admin/users/10
Пользователь: GET /admin/users/name
Далее мне необходимо вывести страницу с формой добавления пользователя. Не трудно догадаться, что пользователи не могут начинать свой ник с числа.
Были идеи сделать так: GET /admin/users/add
Но, что делать с бедным пользователем, выбравшим себе ник "add"? Зарезервировать? Костыль.
@nazarpc да, таким образом я полностью отказался от регулярок (раньше я использовал что-то типа "/^\/admin\/users\/([^\d\/][^\/]+?)\/edit$/", а теперь просто "/admin/users/:nick/edit". Это намного круче. Спасибо.
А по моему вопросу есть идеи?
@nazarpc Да, это логично. Но у меня админка. И я должен предоставить интерфейс добавления пользователя.
Админ переходит на
GET /admin/user/edit
и видит поля, которые он может изменить. Затем он жмет "сохранить" и информация уходит на
PUT /admin/user
Все сохраняются. Все довольны.
@nazarpc мне нужна страница, отображающая интерфейс добавления пользователей. Т.е. пользователь переходит на
GET /admin/users/add
и видит интерфейс добавления пользователя (поля всякие). Жмет "добавить" и информация уходит на
POST /admin/users
пользователь добавлен. Все ОК.
Но! Если какой-либо пользователь зарегистрируется под ником add, то возникнет ошибка. На какой странице лучше реализовать интерфейс добавления пользователя?
@mannaro Почему возникнет ошибка?
GET /admin/users/edit/20
Страница редактирования пользователя. Надежнее и проще использовать id вместо login.
Потом отправляете изменения:
PUT /admin/user/20
А вообще лучше разделять API и страницы. Либо чем-то в заголовках, либо префиксом в пути, например:
PUT /api/admin/user/20
Таким образом вы отделите API от страниц.
REST относится больше к API, по стандарту, на сколько я знаю, формой всё-равно можно отправлять только GET/PUT запросы. А вот через AJAX уже можно любые.