Початок роботи
Помилки
Коди статусу відповідають семантиці HTTP. Тіло — це JSON в одному з трьох форматів, тож читайте те поле, яке присутнє, а не покладайтеся на одне.
| Статус | Значення | Повторювати? |
|---|---|---|
200 | Успіх. Порожній результат — теж 200 з data: [] або count: 0. | — |
400 | Пошуковий рушій відхилив запит, або limit/scroll_time експорту перевищує максимум. | Ні, виправте запит |
403 | Проблема з ключем, підпискою, IP або доступом до джерела. Також недійсний курсор експорту. | Ні |
404 | Автомобіль, оголошення чи запис довідника не знайдено у ваших джерелах, або курсор експорту прострочено. | Ні |
422 | Помилка валідації. errors називає кожне поле. | Ні, виправте поля |
503 | Пошук тимчасово недоступний. Дотримуйтеся Retry-After (у секундах). | Так, після затримки |
429 / 5xx | Збій вищестоящого сервісу чи інфраструктури. Тіло може бути HTML. | Так, з обмеженою затримкою між спробами |
Формати тіла
| Формат | Використовується для |
|---|---|
{"error": "…"} | Помилки доступу й пошуку. Часто повторює контекст, наприклад car_id, vin, domain_id або ip. |
{"errors": {"field": ["…"]}} | Валідація. message присутнє на одних ендпоінтах і відсутнє на інших. Повідомлення відповідають lang. |
{"message": "…"} | Помилки лімітів експорту (з your_value і default_value) та збої фреймворку. |
На публічних маршрутах немає фіксованого ліміту запитів на хвилину, але ліміти акаунта та вищестоящих сервісів усе одно можуть діяти. Завжди дотримуйтеся Retry-After, якщо він присутній.
Обробка помилок із повторними спробами
# --retry repeats 429 and 5xx responses and honors Retry-After.
# --fail-with-body exits non-zero on 4xx/5xx but still prints the JSON.
curl -sg --fail-with-body --retry 3 \
"https://api.lotarius.com/search?perPage=1&api_key=$CARS_API_KEY" \
-H "Accept: application/json"422 · perPage=1Наживо
{
"errors": {
"perPage": [
"The per page field must be at least 2."
]
}
}