🔍 カテゴリスクーマブロック
カテゴリスクーマブロックは、NodeBlocks アプリケーションにおけるカテゴリデータ検証のための JSON Schema 定義を提供します。これらのスキーマは、データ整合性を確保し、カテゴリ関連の API エンドポイントに対する明確なコントラクトを提供します。
🎯 概要
カテゴリスクーマブロックは次のことを目的として設計されています:
- 処理前にカテゴリデータを検証する
- 親子関係を使用した階層構造をサポートする
- カテゴリ操作全体でデータ一貫性を確保する
- カテゴリ検索とフィルタリング機能を有効にする
- 大規模なカテゴリコレクションのためにページネーションをサポートする
📋 カテゴリスクーマタイプ
ベースカテゴリスクーマ
他のスキーマの基礎として使用されるコアカテゴリ構造。
カテゴリ作成スキーマ
必須フィールド検証を使用したカテゴリ作成のためのスキーマ。
カテゴリ更新スキーマ
オプションのフィールド検証を使用したカテゴリ変更のためのスキーマ。
カテゴリクエリスクーマ
カテゴリフィルタリングとページネーションパラメーターのためのスキーマ。
🔧 利用可能なカテゴリスクーマ
categorySchema
コアカテゴリフィールドを使用したベースカテゴリスクーマ。
目的: 再利用のための基本カテゴリ構造を定義します
スキーマ詳細:
- タイプ:
object
- 必須フィールド: なし
- 追加プロパティ:
false
(厳密な検証) - プロパティ:
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
新規カテゴリのための必須フィールドを使用したカテゴリ作成スキーマ。
目的: 作成時にカテゴリデータを検証します
スキーマ詳細:
- タイプ:
object
- 必須フィールド:
name
,description
,status
- 追加プロパティ:
false
(厳密な検証) - Content-Type:
application/json
- リクエストボディ:
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
カテゴリ変更のためのオプションのフィールドを使用したカテゴリ更新スキーマ。
目的: 部分的なカテゴリデータ更新を検証します
スキーマ詳細:
- タイプ:
object
- 必須フィールド: なし
- 追加プロパティ:
false
(厳密な検証) - Content-Type:
application/json
- パラメーター:
categoryId
(パスパラメーター) - プロパティ:
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
});
🔗 関連ドキュメント
- カテゴリドメインの概要 - カテゴリドメインの概要