Пользовательские ошибки в API машин [1.0]

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


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

Ошибка при одиночной операции(не обновилась машина, так как уже была обновлена менее 60 минут назад)

 

1
2
3
4
5
{
  "error""truck_renew_delay_not_elapsed_error",
  "reason""Машина была обновлена менее 60 минут назад",
  "success"false
}

 

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

 

1
2
3
4
5
6
7
8
9
10
{
  "ca6c144c-b051-e711-bc22-005056c00008": {
    "error""truck_renew_delay_not_elapsed_error",
    "reason""Машина была обновлена менее 60 минут назад",
    "success"false
  },
  "5a241090-b051-e711-bc22-005056c00008": {
    "success"true
  }
}

 

 

В данном случае машина  с id=5a241090-b051-e711-bc22-005056c00008 была успешно обновлена, а машина с id=ca6c144c-b051-e711-bc22-005056c00008 не была обновлена, так как обновлена менее 60 минут назад. 

 

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

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

 

 

1
2
3
4
5
6
7
8
9
10
{
  "error""json_validation_error",
  "reason""Ошибка валидации json",
  "error_list": [
    {
      "property""transport.truck_height",
      "reason""Параметр truck_height должен быть от 0 до 50, не должно быть более 2 значящих цифр после запятой"
    }
  ]
}

 

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

Код ошибки
Пояснение
deserialization_errorОшибка десериализации json
json_validation_errorОшибка валидации json из тела запроса.
validation_errorОшибка валидации. Возникает в случае любой ошибки валидации, кроме ошибки валидации тела запроса (json_validation_error)
truck_renew_delay_not_elapsed_errorМашина была обновлена менее 60 минут назад
dictionary_element_not_found_errorЭлемент словаря не найден
truck_not_found_errorМашина не найдена