О чём раздел В данном разделе будут описаны особенности полей тела ответа при ошибках выполнения методов, а также приведены примеры различных ошибок с разным наполнением
Структура ошибочного ответа
Структура ошибочного ответа от API включает в себя обязательные поля и может включать поля с дополнительной информацией.
Пример ошибочного ответа от API - 404 Not Found
{
"result": false,
"errorId": "a8b5db7c-5153-4cd6-9376-5c70f6429ab4",
"errorMessage": "Документ с заданным ID не найден.",
"errorCode": "13.562",
"operationCode": "11.181",
"errorData": {
"documentId": "219e96b8-1180-4bbe-97e0-97a3ea6098b4"
}
}
Описание полей:
result
Тип: boolean
Обязательное?: Да
Пример: false
Пояснение: В случае с ошибочными ответами всегда принимает значение false.errorId
Тип: string
Формат: uuid
Обязательное?: Да
Пример: "a8b5db7c-5153-4cd6-9376-5c70f6429ab4"
Пояснение: С помощью этого поля техническая поддержка сможет найти внутренние детали об ошибке, что позволит быстро разобраться в ситуации и причинах её возникновения.
errorMessage
Тип: string
Обязательное?: Да
Пример: "Документ с заданным ID не найден."
Пояснение: Данное поле содержит краткое описание причины возникновения ошибки.errorCode
Тип: string
Обязательное?: Да
Пример: "13.562"
Пояснение: Это поле предназначено для того, чтобы вызывающая сторона могла формально определить ошибку, зная её код, и определенным образом на неё отреагировать. Для обработки определённых ошибок и формирования сообщений об ошибках на стороне клиента можно опираться на код ошибки и на данные об ошибке, если код ошибки предусматривает возврат этих данных.operationCode
Тип: string
Обязательное?: Да
Пример: "11.181"errorData
Тип: object
Обязательное?: Нет
Пример:
{ "documentId": "219e96b8-1180-4bbe-97e0-97a3ea6098b4" }
Пояснение: Структура объекта и типы данных в полях внутри объекта определяется конкретной ошибкой. В данном поле возвращаются дополнительные формализованные данные о произошедшей ошибке, если произошедшая ошибка предусматривает возврат этих данных.
Виды и примеры ошибочных ответов от API
Ошибки клиента
Все формализованные ошибки входят в группу кодов ответов 4xx, предназначенных для указания ошибок клиента. Ниже приведены примеры тел ошибочных ответов от API с различным наполнением.
Пример ответа без дополнительных данных об ошибке - 401 Unauthorized
{
"result": false,
"errorId": "72b55807-ed45-4af0-916e-9fa97fd0da51",
"errorMessage": "Невалидный API токен.",
"errorCode": "11.006",
"operationCode": "11.100"
}
Пример ответа с дополнительными формализованными данными об ошибке - 400 Bad Request
{
"result": false,
"errorId": "602b88d8-86a5-4054-8082-0797fddd3e3b",
"errorMessage":
"Заданный JSON не соответствует ожидаемому формату.",
"errorCode": "11.021",
"operationCode": "11.181",
"errorData": {
"path": "documents[0]"
}
}
Пример ответа с дополнительными формализованными данными об ошибке - 403 Forbidden
{
"result": false,
"errorId": "e36dd708-4cc8-402f-94fd-e6a7a02d2921",
"errorMessage": "Нет прав выполнять запрошенную операцию.",
"errorCode": "10.000",
"operationCode": "11.082",
"errorData": {
"permission": "EMPLOYEE_POSITIONS"
}
}
Ошибки на сервере
При неуспешном выполнении API-запроса может также вернуться ответ с кодом ошибки 500 Internal Server Error, которая возникает из-за внутренней проблемы сервера при невозможности обработки запроса.
По таким ошибкам клиент не может самостоятельно определить причину возникновения ошибки. В таком случае необходимо обратиться в техподдержку и сообщить идентификатор ошибки (см. errorId
).
Пример ответа от API при ошибке на сервере - 500 Internal Server Error
{
"result": false,
"errorId": "3c67ae53-9617-48e1-ab69-0657116f8585",
"errorMessage": "Внутренняя ошибка на сервере.",
"errorCode": "11.000",
"operationCode": "21.100"
}
Рекомендация по обработке ошибочных ответов
В случае, когда при выполнении API-метода вызывающая сторона получила ошибочный ответ, рекомендуется каким-либо образом зафиксировать (см. errorId
).: либо отобразить пользователю, либо сохранить. Только по ID ошибки техническая поддержка сможет быстро определить детали и причину возникновения ошибки, и, следовательно, решить вопрос, связанный с её появлением.
Поиск документации