Обработка ошибок
Наши API имеют единообразный контракт для работы с ошибками. Единичная ошибка представляет собой JSON, содержащий тело вида
{ "error": "error", "reason": "reason" }
Множествнная ошибка (как правило ошибка валидации) представляет собой JSON вида
{ "error": "error", "reason": "reason", "error_list": [ { "error": "error", "reason": "reason", }, { "error": "error", "reason": "reason", } ] }
Для разных ошибок может быть разный HTTP код.
В поле error содержится текстовый код ошибки, которая произошла при обработке информации внутри сервиса, предоставившего API. Поле reason содержит в себе текст ошибки с подробным описанием.
Например, при отсутствии авторизационного хедера сервис пришлёт ответ с HTTP-статусом 403 (Forbidden) и телом
{ "error": "Unauthorized", "reason": "Невозможно распознать секретный ключ." }
В некоторых случаях тело ответа может иметь дополнительные, свойственные определённому API поля. Подробнее об этом можно узнать непосредственно в документации сервисов, отвечающих за работу с Грузами, Заказами, Фирмами и др.