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

Ошибки

Единый формат ошибок, коды состояния и что делать в каждом случае.

Единый формат для всех ошибок

Каждый ответ с ошибкой содержит одни и те же поля: HTTP-статус в statusCode, постоянный code для проверки в вашей программе и message, написанный для людей. Сообщения могут меняться, коды — нет.

JSON
{
  "statusCode": 404,
  "code": "not_found",
  "message": "work not found"
}

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

Эти коды вы встретите при чтении публичного API:

  • 400invalid_requestПараметр отсутствует, имеет неверный тип или выходит за допустимые пределы.
  • 403forbiddenРесурс существует, но владелец держит его закрытым.
  • 404not_foundПо этому адресу ничего нет.
  • 429rate_limitedСлишком много запросов с вашего адреса; подождите и повторите попытку.
  • 500internal_errorЧто-то пошло не так на нашей стороне; повторите попытку позже.
  • 503unavailableСервис, нужный для операции, например поиск, ненадолго недоступен.

Неверные параметры

Если параметр отсутствует или выходит за допустимые пределы, ответ — 400 invalid_request, а issues перечисляет каждую проблему с именем параметра.

JSON
{
  "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
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.

JSON
{
  "statusCode": 403,
  "code": "favorites_private",
  "message": "You are not allowed to do this."
}