Начало работы
Пагинация
Три вида списков используют три стиля пагинации. Выбирайте эндпоинт по задаче, а не только по набору фильтров.
| Номера страниц | Scroll-курсор | Курсор по ID | |
|---|---|---|---|
| Эндпоинты | /search, /car-options | /cars | /countries, /locations |
| Запрос | page, perPage | Переход по next_url | after_id, per_page |
| Размер страницы | 2–50, по умолчанию 50 | 1–2,000, по умолчанию 500 | 1–1,000, по умолчанию 100 |
| Лимит глубины | page × perPage ≤ 10,000 | Нет, курсор живёт 1–15 мин | Нет |
| Когда остановиться | links.next равен null | scroll_id равен null | meta.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
}
}