Версия источника: 4880e8b4372c96001c2e052be28b68a95d31252b
Синхронизировано: 2026-11-09T11:15:07.649Z
Источник: https://github.com/sergey-from-riders/vibecoding-base/tree/4880e8b4372c96001c2e052be28b68a95d31252b

<a id="api-pagination"></a>

# Пагинация

## Коротко

Договоритесь о размере страницы, сортировке, фильтрах и продолжении списка.

## Плохо

```text
GET /users → вся таблица без лимита.
```

## Хорошо

```text
GET /users?limit=50&cursor=...
Ответ: items и next_cursor.
```

## Почему

Неограниченная выдача расходует память и делает время ответа непредсказуемым.

## Когда применять

Cursor удобен для меняющихся списков; offset допустим для небольших стабильных выборок. Порядок должен иметь уникальный tie-breaker.

## Как проверить

- Проверьте предел размера и повторяющиеся значения сортировки.

## Человек

Определяет порядок списка, лимит страницы и требования к стабильности выдачи.

## Агент

Реализует серверный контракт и проверяет успешный запрос, неверный ввод и повторное обращение.

Контроль результата:

- Проверьте предел размера и повторяющиеся значения сортировки.

## Источники

- [PostgreSQL: Documentation: 18: 7.6. LIMIT and OFFSET](https://www.postgresql.org/docs/18/queries-limit.html)
- [API4:2023 Unrestricted Resource Consumption - OWASP API Security Top 10](https://owasp.org/API-Security/editions/2023/en/0xa4-unrestricted-resource-consumption/)

Уровень: Рекомендуется. Проверено: 2026-11-09. Изменено: 2026-11-09.

[Исходный файл](https://github.com/sergey-from-riders/vibecoding-base/blob/4880e8b4372c96001c2e052be28b68a95d31252b/registry/standards/api/openapi-modular/rules/pagination.md)
