При запросе разбитых на страницы данных вы знаете (по явному значению параметра размера страницы или значению размера страницы по умолчанию) размер страницы, чтобы вы знали, получили ли вы все данные в ответ или нет. Когда в ответе меньше данных, чем размер страницы, вы получаете целые данные. Когда возвращается полная страница, вам нужно снова запросить другую страницу.
Я предпочитаю иметь отдельную конечную точку для подсчета (или ту же конечную точку с параметром countOnly). Потому что вы могли бы подготовить конечного пользователя к длительному / длительному процессу, показав правильно инициированный индикатор выполнения.
Если вы хотите возвращать размер данных в каждом ответе, должен быть указан размер страницы, также указано смещение. Честно говоря, лучший способ - это повторить фильтры запросов. Но ответ стал очень сложным. Итак, я предпочитаю выделенную конечную точку для возврата счетчика.
<data>
<originalRequest>
<filter/>
<filter/>
</originalReqeust>
<totalRecordCount/>
<pageSize/>
<offset/>
<list>
<item/>
<item/>
</list>
</data>
Моя связь, предпочитаю параметр countOnly существующей конечной точке. Таким образом, если указано, ответ содержит только метаданные.
конечная точка? Фильтр = значение
<data>
<count/>
<list>
<item/>
...
</list>
</data>
конечная точка? Фильтр = значение & countOnly = истина
<data>
<count/>
<!-- empty list -->
<list/>
</data>