API использует информирование при помощи HTTP кодов ответов, которые приложение должно корректно обрабатывать.
Помимо кода ответа, в теле ответа выдаётся дополнительная информация, позволяющая разработчику понять причину ошибки.
Ошибки выдаются в формате:
{
"errors": [
{
"type": "validation.email",
"value": ["error.invalid_email"]
},
{
"type": "common",
"value": ["invalid json"]
}
]
}
Ключ type
присутствует в каждом объекте и содержит текстовый
идентификатор класса ошибки.
Ключ value
опционален и конкретизирует данные об ошибке.
Если сервис не может обработать запрос, то в ответ придёт 500 Internal Server Error
и поле type
будет содержать
server_error
.
В редких случаях ошибки с 5xx кодами могут возвращаться с телом не содержащим валидный JSON. Приложение должно в таких случаях ориентироваться только на код ответа.
Подробнее про заголовок User-Agent.
HTTP code | type | value | описание |
---|---|---|---|
400 | bad_user_agent | заголовок User-Agent не передан |
Подробнее про авторизацию.
Если совершается авторизованный запрос
в API, а предоставленная авторизация не действительна,
вернётся ошибка с type
oauth
и одним из перечисленных value
:
HTTP code | type | value | описание |
---|---|---|---|
401 | oauth | bad_authorization | токен авторизации не существует или не валидный |
401 | oauth | token_expired | время жизни access_token завершилось, необходимо выполнить обновление access_token |
401 | oauth | token_revoked | токен отозван пользователем, приложению необходимо запросить новую авторизацию |