jpskill.com
📦 その他 コミュニティ

api-pagination

大量のデータを扱う際に、オフセット/リミット、カーソル、キーセットといった方法で効率的にページ分割し、検索パフォーマンスを最適化して、コレクションをスムーズに表示するSkill。

📜 元の英語説明(参考)

Implement efficient pagination strategies for large datasets using offset/limit, cursor-based, and keyset pagination. Use when returning collections, managing large result sets, or optimizing query performance.

🇯🇵 日本人クリエイター向け解説

一言でいうと

大量のデータを扱う際に、オフセット/リミット、カーソル、キーセットといった方法で効率的にページ分割し、検索パフォーマンスを最適化して、コレクションをスムーズに表示するSkill。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o api-pagination.zip https://jpskill.com/download/21329.zip && unzip -o api-pagination.zip && rm api-pagination.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/21329.zip -OutFile "$d\api-pagination.zip"; Expand-Archive "$d\api-pagination.zip" -DestinationPath $d -Force; ri "$d\api-pagination.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して api-pagination.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → api-pagination フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
8

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

[Skill 名] api-pagination

API Pagination

目次

概要

効率的なクエリ、ナビゲーション、パフォーマンス最適化により、大規模なデータセットを処理するためのスケーラブルなページネーション戦略を実装します。

使用する場面

  • 大規模なリソースコレクションを返す場合
  • 検索結果のページネーションを実装する場合
  • 無限スクロールインターフェースを構築する場合
  • 大規模なデータセットのクエリを最適化する場合
  • クライアントアプリケーションでメモリを管理する場合
  • API応答時間を改善する場合

クイックスタート

最小限の動作例:

// Node.js offset/limit implementation
app.get('/api/users', async (req, res) => {
  const page = parseInt(req.query.page) || 1;
  const limit = Math.min(parseInt(req.query.limit) || 20, 100); // Max 100
  const offset = (page - 1) * limit;

  try {
    const [users, total] = await Promise.all([
      User.find()
        .skip(offset)
        .limit(limit)
        .select('id email firstName lastName createdAt'),
      User.countDocuments()
    ]);

    const totalPages = Math.ceil(total / limit);

    res.json({
      data: users,
      pagination: {
        page,
        limit,
        total,
        totalPages,
        hasNext: page < totalPages,
// ... (完全な実装についてはリファレンスガイドを参照してください)

リファレンスガイド

references/ ディレクトリにある詳細な実装:

ガイド 内容
Offset/Limit Pagination Offset/Limit Pagination
Cursor-Based Pagination Cursor-Based Pagination
Keyset Pagination Keyset Pagination
Search Pagination Search Pagination
Pagination Response Formats Pagination Response Formats
Python Pagination (SQLAlchemy) Python Pagination (SQLAlchemy)

ベストプラクティス

✅ するべきこと

  • 大規模なデータセットにはカーソルページネーションを使用する
  • 妥当な最大制限(例:100)を設定する
  • 可能な場合は合計件数を含める
  • ナビゲーションリンクを提供する
  • ページネーション戦略を文書化する
  • ソートにはインデックス付きフィールドを使用する
  • 適切な場合はページネーション結果をキャッシュする
  • エッジケース(空の結果)を処理する
  • 一貫したページネーション形式を実装する
  • 非常に大規模なデータセットにはキーセットを使用する

❌ するべきではないこと

  • 数十億行に対してオフセットを使用する
  • 無制限のページサイズを許可する
  • リクエストごとに行数をカウントする
  • ソートせずにページネーションを行う
  • ページネーションの途中でソート順を変更する
  • カーソルなしで深いページネーションを使用する
  • 大規模なデータセットのページネーションをスキップする
  • データベースのページネーションを直接公開する
  • ページネーション戦略を混在させる
  • パフォーマンスへの影響を無視する
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

API Pagination

Table of Contents

Overview

Implement scalable pagination strategies for handling large datasets with efficient querying, navigation, and performance optimization.

When to Use

  • Returning large collections of resources
  • Implementing search results pagination
  • Building infinite scroll interfaces
  • Optimizing large dataset queries
  • Managing memory in client applications
  • Improving API response times

Quick Start

Minimal working example:

// Node.js offset/limit implementation
app.get('/api/users', async (req, res) => {
  const page = parseInt(req.query.page) || 1;
  const limit = Math.min(parseInt(req.query.limit) || 20, 100); // Max 100
  const offset = (page - 1) * limit;

  try {
    const [users, total] = await Promise.all([
      User.find()
        .skip(offset)
        .limit(limit)
        .select('id email firstName lastName createdAt'),
      User.countDocuments()
    ]);

    const totalPages = Math.ceil(total / limit);

    res.json({
      data: users,
      pagination: {
        page,
        limit,
        total,
        totalPages,
        hasNext: page < totalPages,
// ... (see reference guides for full implementation)

Reference Guides

Detailed implementations in the references/ directory:

Guide Contents
Offset/Limit Pagination Offset/Limit Pagination
Cursor-Based Pagination Cursor-Based Pagination
Keyset Pagination Keyset Pagination
Search Pagination Search Pagination
Pagination Response Formats Pagination Response Formats
Python Pagination (SQLAlchemy) Python Pagination (SQLAlchemy)

Best Practices

✅ DO

  • Use cursor pagination for large datasets
  • Set reasonable maximum limits (e.g., 100)
  • Include total count when feasible
  • Provide navigation links
  • Document pagination strategy
  • Use indexed fields for sorting
  • Cache pagination results when appropriate
  • Handle edge cases (empty results)
  • Implement consistent pagination formats
  • Use keyset for extremely large datasets

❌ DON'T

  • Use offset with billions of rows
  • Allow unlimited page sizes
  • Count rows for every request
  • Paginate without sorting
  • Change sort order mid-pagination
  • Use deep pagination without cursor
  • Skip pagination for large datasets
  • Expose database pagination directly
  • Mix pagination strategies
  • Ignore performance implications

同梱ファイル

※ ZIPに含まれるファイル一覧。`SKILL.md` 本体に加え、参考資料・サンプル・スクリプトが入っている場合があります。