Перейти к основному содержимому

Справочник ошибок

Все ошибки возвращаются в стандартном envelope-формате.


HTTP Коды состояния

КодКогда
200Успешный запрос
201Ресурс создан
401Не аутентифицирован (нет токена / истёк / невалиден)
403Нет прав (Pundit)
404Ресурс не найден
422Ошибка валидации

401 Unauthorized

{
"success": false,
"status": "401",
"message": "Token expired",
"errors": null,
"data": null
}

Возможные значения message:

  • "Token expired" — токен истёк, нужно обновить через /auth/refresh
  • "Invalid token" — токен невалиден или отсутствует
  • "Invalid credentials" — неверный email/пароль
  • "Invalid Google token"id_token не прошёл верификацию Google

403 Forbidden

{
"success": false,
"status": "403",
"message": "Forbidden",
"errors": null,
"data": null
}

Пользователь аутентифицирован, но не имеет прав на действие (Pundit).


404 Not Found

{
"success": false,
"status": "404",
"message": "Salon not found",
"errors": null,
"data": null
}

422 Unprocessable Entity

Единственный статус, при котором поле errors содержит хэш ошибок:

{
"success": false,
"status": "422",
"message": "Validation failed",
"errors": {
"email": ["has already been taken", "is invalid"],
"password": ["is too short (minimum is 6 characters)"]
},
"data": null
}

Структура errors: { "field_name": ["error message", ...] }.


Важно

  • Поле всегда называется errors (множественное число), никогда error.
  • На всех ответах кроме 422 поле errors равно null.
  • На всех ошибках поле data равно null.