Какого вида данных запрос делают на сервер при работе с пагинацией?
Какой запрос делают с клиента, чтобы отображать список в виде пагинации?
Каждый раз получают ответ максимального числа продуктов, чтобы вывести шкалу пагинации и зависимости от страницы отправляют порядковый номер с 2 умноженный на 10 продуктов, при переходе на 2 страницу?
Или получают весь список продуктов и уже от них на клиенте дальше строится пагинация?
А как на клиенте узнают максимальное количество продуктов?
Тут просто выборка к примеру с 11 по 20 продуктов, а как понять сколько их вообще?
Это отдельный запрос или как?
Boris007, обычно дополнительными запросами, и там будет не один, а штук 10-15.
Бояться этого не нужно, а нужно результаты агрегирующихзапросов кешировать, например в keydb (redis).
Boris007, да, и второй способ, запрашивать на одну строку больше, чем размер страницы. Если не хотите каунтеры запрашивать., иногда это очень накладно.
Алексей Черемисин, т.е. каждый запрос это всегда два запроса подряд на количество и на необходимое количество продуктов?
Например, если мы добавляем продукты, чтобы каждый запрос был актуальным
Т.е. в любом запросе, где предполагается пагинация, всегда возвращается объект с двумя значениями, массива из 10 продуктами и второй это их максимальное количество?
И только в GET /posts нам сразу вернет только массив продуктов?
Boris007, ну разумеется в каждом ответе возвращать общее количество. Вот я запрошу 2 страницу, а 3 запрошу через полчаса. А вы за полчаса удалили 200 постов или добавили 100 и количество изменилось. Поэтому на каждый запрос возвращается общее количество, чтобы фронтенд мог корректно нарисовать пагинацию.