Обработка ошибок
API Яндекс Маршрутизации возвращает JSON в ответ на все запросы и использует стандартные коды ответов.
В случае редких проблем на серверах Яндекса API ответит сообщением с кодом 50х.
Коды ответов сервера
-
200 — операция выполнена успешно.
-
400 — некорректный запрос. Рекомендуем проверить формат передаваемых данных.
-
401 — отсутствует авторизация. Рекомендуем проверить корректность токена.
-
403 — доступ к ресурсу запрещен. Рекомендуем проверить права доступа пользователя.
-
404 — запрошенный ресурс не найден. Рекомендуем проверить идентификаторы.
-
409 — возник конфликт (например, попытка создать дубликат записи или нарушение требований уникальности).
-
500 — произошла внутренняя ошибка на сервере.
Разбор типичных ошибок
Ошибка 409 при создании сущности
Сущность с указанными идентификаторами уже присутствует в системе.
Рекомендации:
-
проверьте, не была ли сущность создана ранее;
-
используйте уникальные значения
client_id; -
учитывайте особенности идемпотентных операций (например, при создании заказа):
-
код ошибки 409 означает, что текущие данные отличаются от тех, что были переданы ранее для того же
client_id; -
код 200 означает, что данные идентичны.
-
Ошибка 409 при принятии маршрута
Один или несколько заказов в маршруте уже связаны с другим маршрутом.
Рекомендации:
-
отмените исходный маршрут с помощью запроса
POST /api/integration/v1/routes/route/cancel; -
после отмены повторите попытку принятия нового маршрута.
Ошибка 404 при обновлении сущности
Сервис не обнаружил запрашиваемую сущность.
Рекомендации:
-
убедитесь, что сущность действительно была создана ранее;
-
проверьте корректность идентификаторов (
client_idилиid); -
проверьте корректность параметра
company_id.
Ошибка 500 при конкурентном обновлении
Два или более запросов пытаются одновременно внести изменения в одну и ту же сущность.
Рекомендации:
-
повторите запрос — система использует версионирование, это может помочь разрешить конфликт;
-
для идемпотентных операций передайте заголовок
X-Idempotency-Token.