🔍 カテゴリスキーマブロック
カテゴリスキーマブロックは、Nodeblocksアプリケーションにおけるカテゴリデータ検証のためのJSONスキーマ定義を提供します。これらのスキーマは、データ整合性を確保し、カテゴリ関連の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: '電子機器',
description: '電子デバイスとアクセサリー',
status: 'active'
});
createCategorySchema
新しいカテゴリのための必須フィールド付きカテゴリ作成スキーマ。
目的: 作成時のカテゴリデータを検証
スキーマ詳細:
- タイプ:
object
- 必須フィールド:
name
,description
,status
- オプションフィールド:
parent
- 追加プロパティ:
false
(厳密な検証) - コンテンツタイプ:
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: '電子機器',
description: '電子デバイスとアクセサリー',
status: 'active'
});
updateCategorySchema
カテゴリ変更のためのカテゴリ更新スキーマ。
目的: 部分的なカテゴリ更新を検証
スキーマ詳細:
- タイプ:
object
- 必須フィールド: なし(すべてオプション)
- オプションフィールド:
name
,description
,parent
,status
- 追加プロパティ:
false
(厳密な検証) - コンテンツタイプ:
application/json
- パラメータ:
categoryId
(パスパラメータ)
使用方法:
import { schemas } from '@nodeblocks/backend-sdk';
const { updateCategorySchema } = schemas;
const categorySchema = updateCategorySchema({});
const validate = ajv.compile(categorySchema.schemas as SchemaDefinition);
const isValid = validate({
name: '更新された電子機器',
status: 'disabled'
});
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
フィルタリングとページネーション付きカテゴリ検索のためのカテゴリ検索スキーマ。
目的: カテゴリ検索とページング リクエストを検証
スキーマ詳細:
- クエリパラメータ:
name?: string
(名前でのオプションフィルタ)status?: string
(ステータスでのオプションフィルタ)parent?: string
(親カテゴリでのオプションフィルタ)page?: number
(ページネーション)limit?: number
(ページネーション)
- 目的: カテゴリ検索とページング リクエストを検証
使用方法:
import { schemas } from '@nodeblocks/backend-sdk';
const { findCategoriesSchema } = schemas;
const categorySchema = findCategoriesSchema({});
const validate = ajv.compile(categorySchema.schemas as SchemaDefinition);
const isValid = validate({
name: '電子',
status: 'active',
page: 1,
limit: 10
});
🔗 関連ドキュメント
- カテゴリドメイン概要 - カテゴリドメインの概要
- カテゴリハンドラー - カテゴリハンドラー機能
- カテゴリルート - カテゴリルートエンドポイント