Существует ли какие-либо стандарты ответов в restful?

Здравствуйте!

В общем есть rest api к которому некоторые приложения могут получить доступ.
Для начало приложение проходит авторизацию , затем получает тоукен. По этому тоукену приложение в дальнейшем будет обращаться к rest api. Вопрос :
при неправильном авторизации или при подаче неправильного тоукена приложением, каким образом( то есть опираясь на какие рекомендации или стандарты может быть) должен ответить сервер.

Например, у меня в данный момент при авторизации , если приложение подал неправильный пароль возвращается следующий ответ.
{
  status: 'error',
  msg : 'Wrong credentials!'
}


Мне хотелось бы узнать от знатоков , правильно ли возвращать такой ответ или существует стандартные ответы при таких случаях?

Заранее преблогадарен за ваш ответ
  • Вопрос задан
  • 2352 просмотра
Пригласить эксперта
Ответы на вопрос 3
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Есть вполне стандартные статус коды:
401 - нужно авторизоваться. В этом случае на клиенте мы должны попросить чувака ввести логин и пароль
403 - у вас нет прав на это действие. Например юзер пытался удалить что-то или сделать что-то на что у него нет прав.
422 - не могу обработать сущность. То есть если у нас не валидны данные в запросе, пароль там или имейл не ввели и все такое.
404 - пользователя с таким именем пользователя и паролем не существует.

Добавлять ли в тело ответа месседж с пояснением проблемы - решать вам. По хорошему стоит добавлять ибо тогда мы можем рулить сообщениями об ошибках с сервера. Ну или предоставлять клиенту оные. Но в любом случае разруливать ошибки нужно при помощи статус кодов.

restpatterns.org/HTTP_Status_Codes
Ответ написан
SamDark
@SamDark
Yii2 core team
По статус кодам — примерно да. Примерно потому как иногда оно варьируется.

По структуре ответа — нет.
Ответ написан
miraage
@miraage
Старый прогер
Мое мнение. (с исправлениями Сергея Протько, спасибо ему)

Когда гость запрашивает ресурсы, требующие авторизации - возвращать 401.
Когда гость авторизуется с неправильными данными - 422.
Когда юзер запрашивает ресурсы, но нет нужных прав доступа - 403.
Когда нет нужного csrf/api токена при запросе - 422.

И давать пояснения. Тут уже на Ваш выбор. Главное, опишите все моменты в документации, если кто-то еще будет пользоваться.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы