OpenAPIでのページネーションパターン
OpenAPIでoffset/limit、カーソルベース、ページベースのパターンによるAPIページネーションをドキュメント化。ページネーションパラメータ、レスポンスラッパー、スケーラブルなリストエンドポイントのためのLinkヘッダースキーマを定義。
Endpoint Patterns
詳細な説明
OpenAPIでのページネーション
アイテムのリストを返すすべてのAPIエンドポイントにはページネーションが必要です。OpenAPIはoffset/limit、ページベース、カーソルベースのアプローチを含むすべての主要なページネーションパターンをドキュメント化できます。
Offset/Limitページネーション
最もシンプルなアプローチ:
/items:
get:
parameters:
- name: offset
in: query
schema:
type: integer
default: 0
- name: limit
in: query
schema:
type: integer
default: 20
maximum: 100
ページベースページネーション
よりユーザーフレンドリーな番号付け:
/articles:
get:
parameters:
- name: page
in: query
schema:
type: integer
default: 1
- name: per_page
in: query
schema:
type: integer
default: 25
maximum: 100
カーソルベースページネーション
リアルタイムデータと大規模データセットに最適:
/events:
get:
parameters:
- name: cursor
in: query
schema:
type: string
description: 前のレスポンスからの不透明カーソル
- name: limit
in: query
schema:
type: integer
default: 50
maximum: 200
パターンの選択
- Offset/limit: シンプル、任意のページにジャンプ可能、大きなオフセットでは遅い
- ページベース: ユーザーフレンドリー、UIのページ番号によくマッピングされる
- カーソルベース: 最も高パフォーマンス、欠落/重複なし、ランダムページアクセスは不可
ユースケース
ページネーションのドキュメントは、コレクションを返すすべてのAPIにとって重要です。フロントエンド開発者は無限スクロール、ページナビゲーション、「もっと読み込む」ボタンを構築するためにページネーションスタイルを知る必要があります。APIゲートウェイとSDKジェネレーターはページネーションパラメータを使用して自動ページネーションヘルパーを実装します。適切なパターンの選択とドキュメント化はパフォーマンスと開発者体験の両方に影響します。