Структура описания и коды ошибок

Описание ошибок.

Каждая ошибка, возникшая при обработке запроса на стороне ИС помимо соответствующего HTTP кода ошибки должна содержать также и более детальное описание самой ошибки в теле ответа, с указанием следующих полей:

  • error_code – целочисленный код ошибки;
  • error_message – сообщение, с описанием возникшей ошибки (используется только для отладочных задач и расследования инцидентов);
  • details – детали ошибки (приводятся в произвольном формате, специфичном для каждого отдельного типа ошибки). Необязательное поле.

Пример ответа сервера:

JSON


{
"error_code": 0,
"error_message": "Unknown server side error occurred",
"details": null
}

Коды ошибок

0 – UNKNOWN. Неизвестная серверная ошибка.

1 - NOT ALLOWED. Вызван недопустимый метод, обычно сопровождается 405 статусом HTTP ответа при вызове HTTP метода неподдерживаемого ресурсом (например PATCH, если ресурс поддерживает только GET/POST).

2 - NOT REALIZED. Вызван веб-сервис, который не реализован на сервере, может встретиться в случае наличия сервиса согласно документации, однако фактически не реализован на постоянной/временной основах.

3 - INVALID STRUCTURE. Некорректная структура запроса, обычно встречается если не удается найти обязательный параметр или тело запроса передано в некорректном формате.

4 - INVALID VALUE. Некорректное значение параметра, например может возникать в случаях: передана строка, которая должна иметь формат UUID, но при этом не конвертируется корректно, передано отрицательное значение смещения/ширины окна для пагинации.

5 - INVALID TYPE. Некорректный тип данных для параметра.

6 - AUTH NOT PROVIDED. Отсутствуют аутентификационные параметры, может, например возникать при попытке обратиться к ресурсу, требующему авторизации и без переданного в заголовках запроса соответствующего токена/ключа/подписи.

7 - AUTH INVALID. Некорректное значение параметров аутентификации, например может возникать, когда авторизационные параметры найдены, но пользователей, связанных с переданными данными, не было найдено.

8 - AUTH EXPIRED. Аутентификационные данные устарели – ошибка может возникнуть, например в случае использования токена снабженного механизмом устаревания.

9 - AUTH FORBIDDEN. Доступ к запрашиваемому ресурсу для авторизованного в текущий момент пользователя (системы-клиента) запрещен. Может возникать, например при попытке запросить профиль другой системы-клиента, при попытке запросить сведения не по своим клиентам со стороны системы-клиента.

10 - NOT EXIST. Запрашиваемый ресурс не существует (аналог HTTP status_code = 404).

11 - EXTERNAL SERVICE. Ошибка взаимодействия с внешней ИС, может возникать в случае ошибки взаимодействия с любыми внешними информационными системам.

12 – DATABASE. Критическая ошибка работы с БД на стороне сервера.