Пользовательские ошибки в API грузов

В API грузов может произойти достаточно много пользовательских ошибок, и для идентификации конкретной ошибки не всегда достаточно http кода ошибки. Поэтому при возникновении ошибки в теле ответа всегда будет присутствовать объект ошибки, содержащий 2 поля: Error с кодом ошибки в виде строки и Reason с пояснением. В групповых операциях поля Error и Reason будут указаны для каждого груза, с которым произошла ошибка во время выполнения операции.


Примеры ошибок

Ошибка при одиночной операции(на примере добавления груза)

 

 

Ошибка при групповой операции(на примере группового восстановления)

В данном случае груз с id=2fb7bf16-c68e-e611-a37f-005056c00008 был успешно обновлен, а груз с id=128fc2e1-c48e-e611-a37f-005056c00008 не был обновлен, так как обновлен менее 60 минут назад. 

 

Ошибка валидации(на примере добавления груза)

В случае ошибки валидации json в теле запроса возникает ошибка json_validation_error. В теле ответа будут поля Error и Reason, и, кроме того, поле ErrorList, содержащее массив объектов вида {property;reason}, где property – название поля, в котором произошла ошибка, а  reason – причина ошибки.

 

 

Список возможных ошибок

Код ошибкиПояснение
deserialization_errorОшибка десериализации json
json_validation_errorОшибка валидации json из тела запроса.
validation_errorОшибка валидации. Возникает в случае любой ошибки валидации, кроме ошибки валидации тела запроса (json_validation_error)
load_conflict_errorНайден дубликат в грузах
load_archive_delay_not_elapsedГруз был помещен в архив менее 60 минут назад
load_renew_delay_not_elapsedГруз был обновлен менее 60 минут назад
boards_access_denied_errorНекоторые из указанных площадок не существуют или вы не имеете доступа к ним
access_denied_errorОтказано в доступе
account_not_found_errorФирма не найдена
contact_not_found_errorКонтакт не существует
avatar_not_found_errorАватар не найден
city_not_found_errorГород не найден
comment_not_found_errorКомментарий для груза не найден
dictionary_element_not_found_errorЭлемент словаря не найден
load_not_found_errorГруз не найден
response_not_found_errorОтзыв на груз не найден
avatar_not_found_errorАватар не найден
load_reserved_errorГруз зарезервирован/взят, операции с грузом запрещены
load_cant_reserveНевозможно зарезервировать груз. Груз уже зарезервирован, либо не поддерживает резервирование