api-pagination · secondsky — скилл для Claude Code: что делает и как установить
Скилл помогает проектировать пагинацию для API: оффсетную, курсорную и keyset. Пригодится при сборке эндпоинтов с бесконечной прокруткой и оптимизации запросов к коллекциям.
npx skills add secondsky/claude-skills --skill api-pagination -a claude-codeЧто делает api-pagination
Скилл содержит шаблоны и правила для трёх подходов к постраничной выдаче данных. Для простых списков используется смещение offset и limit, где сложность выборки составляет O(n). Для бесконечной ленты и больших наборов данных агент предложит курсор на базе base64 или keyset-пагинацию со сложностью O(1).
В коде формируется структура ответа со служебным объектом pagination и ссылками links на первую, предыдущую и следующую страницы. Скилл запрещает неограниченный размер страницы и советует ограничить параметр limit планкой в 100 записей. Без индекса по полю сортировки курсорная пагинация теряет смысл и перегрузит базу.
Какие задачи решает
- внедрить курсорную пагинацию для бесконечной ленты
- ограничить максимальный размер страницы в эндпоинтах
- ускорить выборку из больших коллекций без тяжёлых COUNT-запросов
- сформировать структуру метаданных со ссылками на страницы
Примеры запросов агенту
- Напиши эндпоинт для постов с курсорной пагинацией через base64
- Добавь безопасную пагинацию с лимитом не больше 100 записей для маршрута /products
- Сделай keyset-пагинацию для большой таблицы заказов
Как установить api-pagination
1Через Skills CLI (Vercel)
npx skills add secondsky/claude-skills --skill api-pagination -a claude-code2Вручную: положить файлы
~/.claude/skills/api-pagination/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/api-pagination/
1Через Skills CLI (Vercel)
npx skills add secondsky/claude-skills --skill api-pagination -a codex2Вручную: положить файлы
.agents/skills/api-pagination/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add secondsky/claude-skills --skill api-pagination -a cursor2Вручную: положить файлы
.cursor/skills/api-pagination/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install secondsky/claude-skills api-pagination2Вручную: положить файлы
.github/skills/api-pagination/SKILL.md1Через Skills CLI (Vercel)
npx skills add secondsky/claude-skills --skill api-pagination -a gemini-cli2Командой платформы
gemini skills install https://github.com/secondsky/claude-skills --path plugins/api-pagination/skills/api-paginationВручную: положить файлы
.devin/skills/api-pagination/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add secondsky/claude-skills --skill api-pagination -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о api-pagination
Как установить api-pagination в Claude Code?
Выполните команду npx skills add secondsky/claude-skills --skill api-pagination -a claude-code в терминале.
Что делает скилл api-pagination?
Он даёт агенту инструкции по созданию трёх видов пагинации: offset, cursor и keyset. Скилл помогает формировать единый формат ответа с метаданными и избегать медленных запросов.
Какой лимит на размер страницы рекомендует скилл?
Скилл запрещает отдавать неограниченное число записей и советует ставить максимальный предел, например 100 элементов. Также он рекомендует избегать подсчёта общего числа строк через count на крупных таблицах.
Исходный текст
SKILL.md · MIT
---
name: api-pagination
description: Implements efficient API pagination using offset, cursor, and keyset strategies for large datasets. Use when building paginated endpoints, implementing infinite scroll, or optimizing database queries for collections.
license: MIT
---
# API Pagination
Implement scalable pagination strategies for handling large datasets efficiently.
## Pagination Strategies
| Strategy | Best For | Performance |
|----------|----------|-------------|
| Offset/Limit | Small datasets, simple UI | O(n) |
| Cursor | Infinite scroll, real-time | O(1) |
| Keyset | Large datasets | O(1) |
## Offset Pagination
```javascript
app.get('/products', async (req, res) => {
const page = parseInt(req.query.page) || 1;
const limit = Math.min(parseInt(req.query.limit) || 20, 100);
const offset = (page - 1) * limit;
const [products, total] = await Promise.all([
Product.find().skip(offset).limit(limit),
Product.countDocuments()
]);
res.json({
data: products,
pagination: {
page,
limit,
total,
totalPages: Math.ceil(total / limit)
}
});
});
```
## Cursor Pagination
```javascript
app.get('/posts', async (req, res) => {
const limit = 20;
const cursor = req.query.cursor;
const query = cursor
? { _id: { $gt: Buffer.from(cursor, 'base64').toString() } }
: {};
const posts = await Post.find(query).limit(limit + 1);
const hasMore = posts.length > limit;
if (hasMore) posts.pop();
res.json({
data: posts,
nextCursor: hasMore ? Buffer.from(posts[posts.length - 1]._id).toString('base64') : null
});
});
```
## Response Format
```json
{
"data": [...],
"pagination": {
"page": 2,
"limit": 20,
"total": 150,
"totalPages": 8
},
"links": {
"first": "/api/products?page=1",
"prev": "/api/products?page=1",
"next": "/api/products?page=3",
"last": "/api/products?page=8"
}
}
```
## Best Practices
- Set reasonable max limits (e.g., 100)
- Use cursor pagination for large datasets
- Index sorting fields
- Avoid COUNT queries when possible
- Never allow unlimited page sizes
© secondsky · MIT · secondsky/claude-skills
Похожие скиллы
Все скиллы по теме «Бэкенд и API» →Сначала — api-pagination от других авторов.