📄 ページネーションスキーマ
ページネーションスキーマは、Nodeblocksアプリケーション全体で標準化されたページネーションパラメータとメタデータ用のJSONスキーマ定義を提供します。これらのスキーマは、一貫したページネーション動作とレスポンスフォーマットを保証します。
🎯 概要
ページネーションスキーマは以下の目的で設計されています:
- すべてのAPIエンドポイントでのページネーションの標準化
- 適切な制約によるページネーションパラメータの検証
- レスポンスでの一貫したページネーションメタデータの保証
- 共通操作用の再利用可能な文字列配列のサポート
- エンティティ固有のスキーマとの合成の実現
📋 ページネーションスキーマタイプ
クエリパラメータスキーマ
APIリクエストで使用されるページネーションクエリパラメータ用のスキーマ。
レスポンスメタデータスキーマ
APIレスポンスに含まれるページネーションメタデータ用のスキーマ。
ユーティリティスキーマ
ページネーション関連の共通操作用の再利用可能なスキーマ。
🔧 利用可能なページネーションスキーマ
paginationQueryParametersSchema
APIエンドポイント全体で標準化されたページネーション用のページネーションクエリパラメータスキーマ。
目的: リスト/検索エンドポイント用の一貫したページネーションパラメータを提供します
スキーマ詳細:
- Type:
OpenAPIParameter[] - Parameters:
page?: number(1-1000, オプション) - ページネーション用のページ番号limit?: number(1-50, オプション) - ページあたりのレコード数
使用例:
import { schemas } from '@nodeblocks/backend-sdk';
const { paginationQueryParametersSchema } = schemas;
const schema = withSchema({
parameters: [
...paginationQueryParametersSchema,
// other parameters
]
});
// Used in: GET /identities?page=1&limit=10
paginationSchema
ページネーションされたレスポンス情報用のページネーションメタデータスキーマ。
目的: APIレスポンスのページネーションメタデータを検証します
スキーマ詳細:
- Type:
object - Required Fields:
page,limit,total,total_pages - Additional Properties:
false(厳密な検証) - Properties:
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.schemas as SchemaDefinition);
const isValid = validate({
page: 1,
limit: 10,
total: 100,
total_pages: 10
});
arrayOfStringsSchema
再利用可能な文字列配列検証用の文字列配列スキーマ定義。
目的: 文字列値のみを含む配列を検証します
スキーマ詳細:
- Type:
array - Items:
string - Additional Properties:
false(厳密な検証)
使用例:
import { schemas } from '@nodeblocks/backend-sdk';
const { arrayOfStringsSchema } = schemas;
const validate = ajv.compile(arrayOfStringsSchema);
const isValid = validate(['item1', 'item2', 'item3']);