🔍 カテゴリスキーマ
カテゴリスキーマは、Nodeblocksアプリケーションでカテゴリデータのバリデーション用のJSON Schema定義を提供します。これらのスキーマはデータ整合性を保証し、カテゴリ関連のAPIエンドポイントの明確な契約を提供します。
🎯 概要
カテゴリスキーマは以下の目的で設計されています:
- 処理前にカテゴリデータを検証
- 親子関係を持つ階層構造をサポート
- カテゴリ操作全体でデータの一貫性を確保
- カテゴリ検索とフィルタリング機能を有効化
- 大きなカテゴリコレクションのページネーションをサポート
📋 カテゴリスキーマタイプ
基本カテゴリスキーマ
他のスキーマの基礎として使用されるコアカテゴリ構造。
カテゴリ作成スキーマ
必須フィールドのバリデーションを持つカテゴリ作成用のスキーマ。
カテゴリ更新スキーマ
オプションフィールドのバリデーションを持つカテゴリ変更用のスキーマ。
カテゴリクエリスキーマ
カテゴリフィルタリングとページネーションパラメータ用のスキーマ。
🔧 利用可能なカテゴリスキーマ
categorySchema
コアカテゴリフィールドを持つ基本カテゴリスキーマ。
目的: 再利用のための基本カテゴリ構造を定義
スキーマ詳細:
- Type:
object - 必須フィールド: なし
- Additional Properties:
false(厳密なバリデーション) - Properties:
name?: string- カテゴリ名description?: string- カテゴリ説明parent?: string- 親カテゴリIDstatus?: string- カテゴリステータス
使用例:
import { schemas } from '@nodeblocks/backend-sdk';
const { categorySchema } = schemas;
const categorySchema = categorySchema({});
const validate = ajv.compile(categorySchema.schemas as SchemaDefinition);
const isValid = validate({
name: 'Electronics',
description: 'Electronic devices and accessories',
status: 'active'
});
createCategorySchema
新しいカテゴリの必須フィールドを持つカテゴリ作成スキーマ。
目的: 作成中にカテゴリデータを検証
スキーマ詳細:
- Type:
object - 必須フィールド:
name,description,status - Additional Properties:
false(厳密なバリデーション) - Content-Type:
application/json - Request Body:
required
使用例:
import { schemas } from '@nodeblocks/backend-sdk';
const { createCategorySchema } = schemas;
const categorySchema = createCategorySchema({});
const validate = ajv.compile(categorySchema.schemas as SchemaDefinition);
const isValid = validate({
name: 'Electronics',
description: 'Electronic devices and accessories',
status: 'active'
});
updateCategorySchema
カテゴリ変更用のオプションフィールドを持つカテゴリ更新スキーマ。
目的: 部分的なカテゴリデータ更新を検証
スキーマ詳細:
- Type:
object - 必須フィールド: なし
- Additional Properties:
false(厳密なバリデーション) - Content-Type:
application/json - パラメータ:
categoryId(パスパラメータ) - Properties:
name?: string- 更新されたカテゴリ名description?: string- 更新されたカテゴリ説明parent?: string- 更新された親カテゴリID
使用例:
import { schemas } from '@nodeblocks/backend-sdk';
const { updateCategorySchema } = schemas;
const categorySchema = updateCategorySchema({});
const validate = ajv.compile(categorySchema.schemas as SchemaDefinition);
const isValid = validate({ description: 'Updated description' });
getCategorySchema
単一のカテゴリを取得するためのカテゴリ取得スキーマ。
目的: 特定のカテゴリを取得するリクエストを検証
スキーマ詳細:
- パラメータ:
categoryId(パスパラメータ)
使用例:
import { schemas } from '@nodeblocks/backend-sdk';
const { getCategorySchema } = schemas;
const categorySchema = getCategorySchema({});
const validate = ajv.compile(categorySchema.schemas as SchemaDefinition);
const isValid = validate({
categoryId: 'cat123'
});
deleteCategorySchema
カテゴリを削除するためのカテゴリ削除スキーマ。
目的: 特定のカテゴリを削除するリクエストを検証
スキーマ詳細:
- パラメータ:
categoryId(パスパラメータ)
使用例:
import { schemas } from '@nodeblocks/backend-sdk';
const { deleteCategorySchema } = schemas;
const categorySchema = deleteCategorySchema({});
const validate = ajv.compile(categorySchema.schemas as SchemaDefinition);
const isValid = validate({
categoryId: 'cat123'
});
enableCategorySchema
カテゴリを有効化するためのカテゴリ有効化スキーマ。
目的: 特定のカテゴリを有効化するリクエストを検証
スキーマ詳細:
- パラメータ:
categoryId(パスパラメータ)
使用例:
import { schemas } from '@nodeblocks/backend-sdk';
const { enableCategorySchema } = schemas;
const categorySchema = enableCategorySchema({});
const validate = ajv.compile(categorySchema.schemas as SchemaDefinition);
const isValid = validate({
categoryId: 'cat123'
});
disableCategorySchema
カテゴリを無効化するためのカテゴリ無効化スキーマ。
目的: 特定のカテゴリを無効化するリクエストを検証
スキーマ詳細:
- パラメータ:
categoryId(パスパラメータ)
使用例:
import { schemas } from '@nodeblocks/backend-sdk';
const { disableCategorySchema } = schemas;
const categorySchema = disableCategorySchema({});
const validate = ajv.compile(categorySchema.schemas as SchemaDefinition);
const isValid = validate({
categoryId: 'cat123'
});
findCategoriesSchema
フィルタリングとページネーションを使用してカテゴリを検索するためのカテゴリ検索スキーマ。
目的: カテゴリを検索およびページネーションするリクエストを検証
スキーマ詳細:
- クエリパラメータ:
description?: string(説明によるオプションのフィルター)name?: string(名前によるオプションのフィルター)parent?: string(親カテゴリによるオプションのフィルター)status?: string(ステータスによるオプションのフィルター)page?: number(ページネーション)limit?: number(ページネーション)
使用例:
import { schemas } from '@nodeblocks/backend-sdk';
const { findCategoriesSchema } = schemas;
const categoriesSchema = findCategoriesSchema({});
const validate = ajv.compile(categoriesSchema.schemas as SchemaDefinition);
const isValid = validate({
name: 'Electronics',
status: 'active',
page: 1,
limit: 10
});
🔗 関連ドキュメント
- カテゴリドメイン概要 - カテゴリドメイン概要