Пагинация
Страница задаётся двумя параметрами, а сколько записей всего — сказано в заголовке ответа.
| Параметр | По умолчанию | Границы |
|---|---|---|
_page | 1 | начиная с единицы |
_limit | 20 | от 1 до 200 |
$ curl -s -D - "https://acme.<домен>/shop/users?_page=2&_limit=50" | head -3
HTTP/1.1 200 OK
X-Total-Count: 143
Сколько всего страниц
Разделите X-Total-Count на _limit и округлите вверх. Для 143 записей по 50 на странице получится три страницы.
Общее число лежит в заголовке, а не в теле ответа, чтобы тело всегда оставалось просто массивом записей — одинаковым и когда страницы нужны, и когда нет.
Пустая страница
Запрос страницы, которой уже нет, отвечает 200 и пустым массивом — это не ошибка. X-Total-Count при этом по-прежнему показывает общее число записей, так что по нему видно, что записи кончились.