В вызовах API AtTask, как использовать разбиение на страницы, когда мне нужно больше 2000 записей, чтобы вернуться?
Например, учитывая следующее из сайта разработчиков https://developers.attask.com/api-docs/#Basics, я вижу следующее
Paginated Responses
Чтобы переопределить число результатов по умолчанию и задать ответ для предоставления 200 результатов, вы должны включить в свой запрос следующее:
GET/attask/api/project/search?$$LIMIT=200
Для обеспечения надежности и производительности для других арендаторов в системе максимальный допустимый предел для каждого запроса составляет 2000 объектов. Попытка указать больший предел приведет к ошибке.
Поэтому рекомендуется рассмотреть возможность использования постраничных ответов для больших наборов данных. Чтобы указать первый результат, который должен быть возвращен, можно добавить фильтр
$$FIRST
. Следующие результаты вернут результаты 201-250 для запроса.
GET/attask/api/project/search?$$FIRST=201&$$LIMIT=50
Я не понимаю, как определить, сколько у меня есть. Если я хочу загрузить часы в системе, как узнать, сколько раз мне нужно позвонить (есть ли count(*)
) или какой-нибудь метод? Я просто собираюсь получить первые 2k, процесс, попытаться получить следующие 2k и обработать, если не пуст? Промыть и повторить?
Вы можете получить общее количество элементов, используя вызов отчета. Итак, в вашем примере, чтобы получить количество часов в системе (не суммарно общее количество часов), вы можете сделать следующее:
/attask/api/HOUR/report?ID_AggFunc=count
Надеюсь, это поможет!
Поскольку первоначальный поиск приведет только к 2000 результатам, вам придется перебирать и вытаскивать следующий 2000, пока результаты не останутся.