Структура описания и коды ошибок
Описание ошибок.
Каждая ошибка, возникшая при обработке запроса на стороне ИС помимо соответствующего 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. Критическая ошибка работы с БД на стороне сервера.