CarStat.dev
Руководство

Отображение местоположения объявления

У каждого объявления есть location_details с одинаковыми четырьмя частями на всех эндпоинтах: country в виде {id, name, iso}, а также region, district и place в виде {id, name}. Отсутствующие части равны null. Берите названия прямо отсюда; дополнительные запросы не нужны.

  • ID, который не удалось сопоставить, сохраняет свой id с name: null. Текстовая метка от источника имеет id: null.
  • Регион может одновременно быть и населённым пунктом (один и тот же ID дважды, как в примере). Убирайте дубли подписей по ID.
  • place — географический объект, не всегда город. Мы никогда не определяем город по координатам.
  • Старое поле location сохранено для совместимости. Его значения — ID в /search и локализованные строки в /cars; не используйте его в новом коде.

Выбор региона и города

Для интерфейсов фильтров используйте справочники. Загрузите /countries, затем регионы через /locations?country_id=C&feature_class=A&feature_code=ADM1, районы через admin1=R&feature_code=ADM2, а города и сёла через feature_class=P. Пагинация — через after_id. Результаты упорядочены по ID, а не по релевантности, поэтому сортируйте по названию в своём интерфейсе.

listings[0].location_detailsLive
{
  "country": {
    "id": 208,
    "name": "South Korea",
    "iso": "KR"
  },
  "region": {
    "id": 1841610,
    "name": "Gyeonggi-do"
  },
  "district": null,
  "place": {
    "id": 1841610,
    "name": "Gyeonggi-do"
  }
}
Регионы Южной Кореи
curl -g "https://api.lotarius.com/locations?country_id=208&feature_class=A&feature_code=ADM1&lang=en&api_key=$CARS_API_KEY" \
  -H "Accept: application/json"