Ошибки
Единый формат ошибок, коды состояния и что делать в каждом случае.
Единый формат для всех ошибок
Каждый ответ с ошибкой содержит одни и те же поля: HTTP-статус в statusCode, постоянный code для проверки в вашей программе и message, написанный для людей. Сообщения могут меняться, коды — нет.
{
"statusCode": 404,
"code": "not_found",
"message": "work not found"
}Коды состояния
Эти коды вы встретите при чтении публичного API:
- 400
invalid_requestПараметр отсутствует, имеет неверный тип или выходит за допустимые пределы. - 403
forbiddenРесурс существует, но владелец держит его закрытым. - 404
not_foundПо этому адресу ничего нет. - 429
rate_limitedСлишком много запросов с вашего адреса; подождите и повторите попытку. - 500
internal_errorЧто-то пошло не так на нашей стороне; повторите попытку позже. - 503
unavailableСервис, нужный для операции, например поиск, ненадолго недоступен.
Неверные параметры
Если параметр отсутствует или выходит за допустимые пределы, ответ — 400 invalid_request, а issues перечисляет каждую проблему с именем параметра.
{
"statusCode": 400,
"code": "invalid_request",
"message": "The request parameters are not valid.",
"issues": ["limit: Too big: expected number to be <=50"]
}Перемещённые произведения
Если две записи каталога оказываются одним и тем же произведением, одна из них объединяется с другой. Запрос старой записи отвечает 301 с новым идентификатором или новыми типом и slug в movedTo. Запросите новый адрес и обновите то, что у вас сохранено.
HTTP/1.1 301 Moved Permanently
{ "movedTo": "01a0cb02-0a14-7877-911d-5b4dde76df72" }Закрытые разделы профиля
Участники сами решают, какие части профиля открыты. Скрытый раздел отвечает 403 с кодом, который его называет, например favorites_private, library_private, activity_private или communities_private. Если участник сменил имя пользователя, ответ — 404 member_renamed с новым именем в username.
{
"statusCode": 403,
"code": "favorites_private",
"message": "You are not allowed to do this."
}