К основному содержанию
скилл CX Codex

api-pagination · secondsky — скилл для Claude Code: что делает и как установить

Скилл помогает проектировать пагинацию для API: оффсетную, курсорную и keyset. Пригодится при сборке эндпоинтов с бесконечной прокруткой и оптимизации запросов к коллекциям.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add secondsky/claude-skills --skill api-pagination -a claude-code
Открыть на GitHub

Что делает 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-code

2Вручную: положить файлы

~/.claude/skills/api-pagination/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/api-pagination/

По шагам, с командами для каждой платформы: Как установить скилл в 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 от других авторов.

api-pagination aj-geddes Скилл подсказывает агенту, как отдавать большие коллекции: offset/limit, курсоры, keyset. Пригодится, когда список пользователей или результатов поиска не влезает в один ответ. CX Codex +1 489установок mcp-builder официальный anthropics Скилл проводит через создание MCP-сервера на TypeScript или Python: от изучения протокола до тестов и оценки качества. 130 949установок claude-api официальный anthropics Справочник по Anthropic SDK и API Claude для генерации кода без устаревших параметров и выдуманных методов. 74 198установок lark-im larksuite Скилл подключает Lark IM к агенту: он отправляет сообщения, ищет историю, управляет чатами и файлами. Подойдёт для задач вокруг командных коммуникаций. CX Codex +1 472 900установок lark-event larksuite Слушает события Lark/Feishu и отдаёт их потоком NDJSON. Подходит для ботов, обработчиков сообщений и долгих подписчиков. CX Codex +1 466 800установок caveman-discover JuliusBrussee Находит точки вызова LLM в репозитории и размечает их воркфлоу для Caveman Cloud, чтобы расходы на токены не сливались в одну общую кучу. CX Codex +1 104 400установок migration JuliusBrussee Скилл задаёт правила безопасных миграций схем, данных и API с обязательным откатом. Пригодится при изменениях, где нельзя терять данные или ломать совместимость. CX Codex +1 103 900установок

Из того же набора128

app-store-deployment Содержит инструкции, скрипты сборки и шаблоны CI/CD для публикации мобильных приложений в iOS App Store и Google Play. Пригодится при настройке подписи кода и релизных пайплайнов. CX Codex +1 423установок recommendation-engine Скилл для построения рекомендательных систем: коллаборативная фильтрация, матричная факторизация, гибридные подходы. Пригодится, когда нужны персональные подборки товаров или контента. CX Codex +1 423установок seo-keyword-cluster-builder Разбивает сырые списки поисковых запросов на тематические кластеры, проектирует структуру контент-хабов и планирует внутреннюю перелинковку. CX Codex +1 422установок api-response-optimization Скилл для ИИ-кодинга, который подсказывает, как уменьшить размер ответов API, включить кэширование и сжатие. Пригодится, когда эндпоинты отвечают медленно. CX Codex +1 422установок api-filtering-sorting Скилл для ИИ-агента, который помогает собрать фильтрацию и сортировку в API: разбор query-параметров, валидация, защита от инъекций. CX Codex +1 418установок bun-drizzle-integration Скилл подсказывает агенту, как связать Drizzle ORM с драйвером bun:sqlite: схема, миграции, CRUD и транзакции в одном месте. CX Codex +1 420установок drizzle-orm-d1 Скилл для работы с Cloudflare D1 через Drizzle ORM: схемы, типизированные запросы, миграции Drizzle Kit и разбор типовых ошибок D1. CX Codex +1 416установок push-notification-setup Скилл проводит агента по настройке пуш-уведомлений через Firebase Cloud Messaging и нативные сервисы. Пригодится, когда добавляешь уведомления в приложение или разбираешься с фоновыми сообщениями. CX Codex +1 418установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой