Перейти к содержимому

Пагинация и лимиты

Фильтры портов, журналов и платежей принимают page и pageSize в JSON-теле. Контракт ограничивает pageSize значением 100.

{
"page": 1,
"pageSize": 100
}

Ответ содержит data, page, pageSize и total. Продолжайте, пока число собранных элементов не достигнет total или очередная страница не окажется пустой. Состав коллекции может изменяться во время обхода.

Пагинаторы официальных SDK запрашивают следующие страницы и возвращают отдельные элементы:

for await (const port of client.paginate(
({ page, pageSize }) =>
client.ports.filter({ body: { page, pageSize, tags: ['Production1'] } }),
{ pageSize: 100 },
)) {
console.log(port.port);
}

Значения сервиса по умолчанию:

Класс запросовЛимит по умолчанию
GET60 запросов в минуту
POST, PUT, PATCH, DELETE10 запросов в минуту

Развертывание может переопределить эти значения. Считайте ответ 429 источником истины, используйте случайную задержку и ограничивайте параллельность. Фильтрация с pageSize: 100 эффективнее множества отдельных запросов.