カーソルベースページネーションのモックレスポンス

nextCursorとhasMoreフィールドを含むカーソルベースのページネーションJSONレスポンスを生成。無限スクロールやリアルタイムフィードの実装に。

Pagination

詳細な説明

カーソルベースページネーション

カーソルベースのページネーションは、ページ番号の代わりにデータセット内の位置を示す不透明なポインター(カーソル)を使用します。リアルタイムフィード、無限スクロール、大規模データセットに推奨されるページネーション戦略です。

レスポンス構造

{
  "data": [
    { "id": "uuid", "title": "string", "createdAt": "date" }
  ],
  "pagination": {
    "nextCursor": "eyJpZCI6IjEyMzQifQ==",
    "hasMore": true,
    "limit": 20
  }
}

カーソル vs オフセットページネーション

側面 オフセット カーソル
ページNへジャンプ 可能 不可
挿入との整合性 なし あり
大規模でのパフォーマンス 低下 一定
実装の複雑さ シンプル 中程度

カーソルの仕組み

カーソルは通常、最後のアイテムのソートキーをBase64エンコードした表現です(例:{ "id": "1234" }{ "createdAt": "2026-01-15T..." })。サーバーはカーソルをデコードし、WHERE id > :cursor ORDER BY id LIMIT :limitクエリパターンで使用します。

カーソルがフィードに適している理由

リストの先頭に新しいアイテムが追加される場合(ソーシャルフィードなど)、オフセットベースのページネーションではアイテムがシフトします。「ページ2」にいるユーザーが重複を見たり、アイテムを見逃す可能性があります。カーソルはデータ内の固定点を参照するため、これを回避します。

フロントエンド統合

無限スクロールの場合、クライアントはnextCursor値を保存し、次のリクエストでクエリパラメータとして渡します:GET /api/feed?cursor=eyJpZ...&limit=20hasMoreがfalseの場合、追加のリクエストは不要です。

ユースケース

無限スクロールフィード、チャットアプリケーション、アクティビティストリームを構築するフロントエンド開発者が、バックエンドなしでカーソルベースのページネーションロジックを実装・テストするために使用できます。

試してみる — API Response Mocker

フルツールを開く