Да, загрузка данных с пагинацией отличное решение. Точнее даже стандартное. Ваша задача найти идеальное соотношение объёма данных и количества запросов для их получения.
Делать запрос для каждого элемента не оптимально, т.к. придётся сразу сделать 100500 запросов. Загружать 100500 элементов за один раз так же не оптимально.
На стороне API
делаете эндпоинт, которые будет принимать нужные для выборки данные плюс номер страницы (для пагинации). Далее просто делаете выборку с использованием то й же пагинации (Для sql
- это LIMIT
и OFFSET
) и возвращаете клиенту.
Для реализации страниц с пагинацией можно использовать infinite scrolling
с подгрузкой данных, когда пользователь "долистал" к концу и нужно загрузить новую порцию данных