Ресурсы REST для формы входа / регистрации - PullRequest
0 голосов
/ 26 мая 2019

Я хочу создать REST логин / регистрационный URI для регистрации существующего пользователя или нового пользователя для регистрации.После небольшого поиска я обнаружил, что большинство таких форм разработаны с использованием следующих правил:

GET /login для получения ресурса входа в систему

POST /login для входа и возврата ресурса профиля пользователя.

GET /register для получения ресурса регистрации

POST /register для регистрации и возврата нового ресурса профиля пользователя

Однако я считаю, что это не 100%Подход REST как одно из правил REST заключается в том, что ресурсы должны быть существительными, а не глаголами (за исключением некоторых особых случаев, таких как поиск API).Какое решение лучше для такой ситуации?

1 Ответ

0 голосов
/ 27 мая 2019

На этот вопрос нет единственно правильного ответа, поэтому я попытаюсь дать несколько идей о наиболее распространенных способах решения этой проблемы.

Войти * * 1003 Сам логин (он же аутентификация), как правило, обрабатывается не RESTful, например, OAuth2. Должен ли действительно быть «логин», если HTTP не имеет состояния? Каждый запрос должен содержать всю информацию, чтобы сервер мог аутентифицировать клиента. Если вы действительно хотите обрабатывать вход в систему как конечную точку RESTful, вы можете спросить себя: «В каком состоянии я меняюсь? Один из способов ответить на этот вопрос - возможно, вы создаете набор учетных данных». На данный момент я предполагаю, что вы ищете лучший подход / общий подход к этому, а не очень пуристический подход REST для этого. Информация о текущем пользователе

Получение текущего пользователя часто обрабатывается через конечную точку, такую ​​как /current-user или /whoami. Выполнение GET запроса на это может либо дать информацию о пользователе, либо сразу же перенаправить на каноническую конечную точку пользователя, такую ​​как /users/1234. Выполнение запроса PUT может снова либо обновить пользователя, либо вернуть перенаправление к фактической конечной точке пользователя.

Регистрация

Если у вас есть список пользователей на ресурсе, например /users. Было бы целесообразно создать новый пользовательский ресурс, выполнив запрос POST к этой коллекции.

...