CarStat.dev
Начало работы

Пагинация

Три вида списков используют три стиля пагинации. Выбирайте эндпоинт по задаче, а не только по набору фильтров.

Номера страницScroll-курсорКурсор по ID
Эндпоинты/search, /car-options/cars/countries, /locations
Запросpage, perPageПереход по next_urlafter_id, per_page
Размер страницы2–50, по умолчанию 501–2,000, по умолчанию 5001–1,000, по умолчанию 100
Лимит глубиныpage × perPage ≤ 10,000Нет, курсор живёт 1–15 минНет
Когда остановитьсяlinks.next равен nullscroll_id равен nullmeta.has_more равен false
Для чегоПользовательский поискСинхронизация всего каталогаСинхронизация справочников

Две особенности /search, которые нужно учесть в коде. data может содержать на один автомобиль больше, чем perPage (мы видели 3 автомобиля при perPage=2), поэтому обрезайте список на клиенте, если нужен точный размер. А meta.total ограничен 10,000: считайте это значение как «10,000 или больше» и вызывайте /search/count с теми же фильтрами, чтобы получить точное число.

/search · links и metaLive
{
  "links": {
    "first": "https://api.lotarius.com/search?perPage=2&page=1",
    "last": "https://api.lotarius.com/search?perPage=2&page=5000",
    "prev": null,
    "next": "https://api.lotarius.com/search?perPage=2&page=2"
  },
  "meta": {
    "current_page": 1,
    "from": 1,
    "last_page": 5000,
    "path": "https://api.lotarius.com/search",
    "per_page": 2,
    "to": 3,
    "total": 10000
  }
}
/countries · metaLive
{
  "data": [
    "…3 countries…"
  ],
  "meta": {
    "per_page": 3,
    "has_more": true,
    "next_after_id": 3
  }
}