CarStat.dev
Pierwsze kroki

Błędy

Kody statusu są zgodne z semantyką HTTP. Treść to JSON w jednym z trzech kształtów, więc odczytuj pole, które jest obecne, zamiast polegać na jednym.

StatusZnaczeniePonawiać?
200Sukces. Pusty wynik to nadal 200 z data: [] lub count: 0.—
400Wyszukiwarka odrzuciła zapytanie albo limit/scroll_time eksportu przekracza maksimum.Nie, popraw żądanie
403Problem z kluczem, subskrypcją, IP lub dostępem do źródła. Także nieprawidłowy kursor eksportu.Nie
404Nie znaleziono pojazdu, ogłoszenia lub wpisu słownika w zakresie Twoich źródeł albo kursor eksportu wygasł.Nie
422Walidacja nie powiodła się. errors wskazuje każde pole.Nie, popraw pola
503Wyszukiwanie jest chwilowo niedostępne. Respektuj Retry-After (w sekundach).Tak, po odczekaniu
429 / 5xxAwaria usługi nadrzędnej lub infrastruktury. Treść może być w HTML.Tak, z ograniczonym backoffem

Kształty treści

KształtZastosowanie
{"error": "…"}Błędy dostępu i wyszukiwania. Często zwraca kontekst, np. car_id, vin, domain_id lub ip.
{"errors": {"field": ["…"]}}Walidacja. message występuje w niektórych endpointach, a w innych go brak. Komunikaty są zgodne z lang.
{"message": "…"}Błędy limitów eksportu (z your_value i default_value) oraz awarie frameworka.

Publiczne trasy nie mają stałego limitu żądań na minutę, ale nadal mogą obowiązywać limity konta i usług nadrzędnych. Zawsze respektuj Retry-After, jeśli jest obecny.

Obsługa błędów z ponawianiem
# --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=1Na żywo
{
  "errors": {
    "perPage": [
      "The per page field must be at least 2."
    ]
  }
}