Обработка ошибок
При успешном завершении операции сервер возвращает клиенту статус "200 OK".
Если в ходе выполнения операции возникла ошибка, сервер возвращает клиенту JSON-структуру с описанием ошибки. Структура ошибки:
json{ "code": "string", "domain": "string", "details": { "key1": "string", "key2": "string" } }
где:
code — уникальный строковый идентификатор ошибки (код ошибки);
domain — место возникновения ошибки:
hub
,billing
,backoffice
,<имя_вендора>
и так далее;details — таблица типа "ключ:значение" со вспомогательными данными.
Список возможных ошибок
Код ошибки | Описание ошибки | HTTP статус |
---|---|---|
AccessDenied | У пользователя нет доступа к запрашиваемому ресурсу | 403 Forbidden |
ConflictingData | Отправленные данные конфликтуют с данными на сервере | 409 Conflict |
ServiceIsBusyByAnotherOperation | Сервис занят другой операцией | 423 Locked |
ServicePreconditionFailedTryLater | Сервис не может выполнить запрос, но ожидается, что сможет в будущем | 412 PreconditionFailed |
ServicePreconditionFailed | Сервис не может выполнить запрос, и не сможет в будущем так как запрос некорректен | 412 PreconditionFailed |
ResourceNotFound | Ресурс, к которому выполняется запрос, не найден | 404 Not found |
RequestBodyIsNotValid | Тело запроса не прошло валидацию | 400 Bad request |
RequestHeadersIsNotValid | Заголовки запроса не прошли валидацию | 400 Bad request |
RequestPathIsNotValid | Path-параметры запроса не прошли валидацию | 400 Bad request |
RequestQueryIsNotValid | Query-параметры запроса не прошли валидацию | 400 Bad request |
QuotaExceeded | Превышены квоты | 402 Payment required |
LimitExceeded | Превышены лимиты | 402 Payment required |
Unauthorized | Запрос не авторизован | 401 Unauthorized |
InternalError | Внутренняя ошибка | 500 Internal error |
PaymentRequired | Недостаточно средств | 402 Payment required |
WrongLocation | Продукт не может быть предоставлен в данном регионе | 406 Not acceptable |
TrialPeriodAlreadyUsed | Пробный (trial) период уже был использован | 402 Payment required |
NotImplemented | Метод не поддерживается сервером | 501 Not Implemented |
NoResources | Сервис не может выполнить запрос, так как у него закончились ресурсы | 503 Service Unavailable |
Ошибки в асинхронных вызовах
- При выполнении вызова асинхронных операций сервер в обязательном порядке возвращает объект
Operation
. - Если при выполнении операции возникнет ошибка, то в объект Operation в поле error будет добавлено сообщение
Status
.