📄 ページネーションスキーマブロック
ページネーションスキーマブロックは、Nodeblocksアプリケーション全体で標準化されたページネーションパラメータとメタデータのためのJSONスキーマ定義を提供します。これらのスキーマは、一貫したページネーション動作とレスポンスフォーマッティングを確保します。
🎯 概要
ページネーションスキーマブロックは以下を目的として設計されています:
- すべてのAPIエンドポイントでのページネーションの標準化
- 適切な制約によるページネーションパラメータの検証
- レスポンスでの一貫したページネーションメタデータの確保
- 共通操作のための再利用可能な文字列配列のサポート
- エンティティ固有スキーマとのコンポジションの実現
📋 ページネーションスキーマ種類
クエリパラメータスキーマ
APIリクエストで使用されるページネーションクエリパラメータのためのスキーマ。
レスポンスメタデータスキーマ
APIレスポンスに含まれるページネーションメタデータのためのスキーマ。
ユーティリティスキーマ
共通のページネーション関連操作のための再利用可能スキーマ。
🔧 利用可能なページネーションスキーマ
paginationQueryParametersSchema
APIエンドポイント全体で標準化されたページネーションのためのページネーションクエリパラメータスキーマ。
目的: リスト/検索エンドポイント用の一貫したページネーションパラメータを提供
スキーマ詳細:
- タイプ:
OpenAPIParameter[]
- パラメータ:
page?: number
(1-1000、オプション) - ページネーション用ページ番号limit?: number
(1-50、オプション) - ページあたりのレコード数
使用方法:
import { schemas } from '@nodeblocks/backend-sdk';
const { paginationQueryParametersSchema } = schemas;
const schema = withSchema({
parameters: [
...paginationQueryParametersSchema,
// その他のパラメータ
]
});
// 使用例: GET /users?page=1&limit=10
paginationSchema
ページング済みレスポンス情報のためのページネーションメタデータスキーマ。
目的: APIレスポンス内のページネーションメタデータを検証
スキーマ詳細:
- タイプ:
object
- 必須フィールド:
page
,limit
,total
,total_pages
- 追加プロパティ:
false
(厳密な検証) - プロパティ:
page: number
- 現在のページ番号(最小: 1)limit: number
- ページあたりのレコード数(最小: 1)total: number
- 総レコード数(最小: 0)total_pages: number
- 総ページ数(最小: 0)
使用方法:
import { schemas } from '@nodeblocks/backend-sdk';
const { paginationSchema } = schemas;
const validate = ajv.compile(paginationSchema);
const isValid = validate({
page: 1,
limit: 10,
total: 100,
total_pages: 10
});
arrayOfStringsSchema
再利用可能な文字列配列検証のための文字列配列スキーマ定義。
目的: 文字列値のみを含む配列を検証
スキーマ詳細:
- タイプ:
array
- 項目:
string
- 追加プロパティ:
false
(厳密な検証)
使用方法:
import { schemas } from '@nodeblocks/backend-sdk';
const { arrayOfStringsSchema } = schemas;
const validate = ajv.compile(arrayOfStringsSchema);
const isValid = validate(['item1', 'item2', 'item3']);
🔗 関連ドキュメント
- 共通スキーマ概要 - 共通スキーマブロックの概要
- アドレススキーマ - アドレス関連スキーマ
- レスポンススキーマ - APIレスポンス構造スキーマ
- ユーティリティスキーマ - ユーティリティ操作スキーマ