メインコンテンツまでスキップ
バージョン: 0.9.0 (最新)

🔍 カテゴリスキーマ

カテゴリスキーマは、Nodeblocksアプリケーションでカテゴリデータのバリデーション用のJSON Schema定義を提供します。これらのスキーマはデータ整合性を保証し、カテゴリ関連のAPIエンドポイントの明確な契約を提供します。


🎯 概要

カテゴリスキーマは以下の目的で設計されています:

  • 処理前にカテゴリデータを検証
  • 親子関係を持つ階層構造をサポート
  • カテゴリ操作全体でデータの一貫性を確保
  • カテゴリ検索とフィルタリング機能を有効化
  • 大きなカテゴリコレクションのページネーションをサポート

📋 カテゴリスキーマタイプ

基本カテゴリスキーマ

他のスキーマの基礎として使用されるコアカテゴリ構造。

カテゴリ作成スキーマ

必須フィールドのバリデーションを持つカテゴリ作成用のスキーマ。

カテゴリ更新スキーマ

オプションフィールドのバリデーションを持つカテゴリ変更用のスキーマ。

カテゴリクエリスキーマ

カテゴリフィルタリングとページネーションパラメータ用のスキーマ。


🔧 利用可能なカテゴリスキーマ

categorySchema

コアカテゴリフィールドを持つ基本カテゴリスキーマ。

目的: 再利用のための基本カテゴリ構造を定義

スキーマ詳細:

  • Type: object
  • 必須フィールド: なし
  • Additional Properties: false (厳密なバリデーション)
  • Properties:
    • name?: string - カテゴリ名
    • description?: string - カテゴリ説明
    • parent?: string - 親カテゴリID
    • status?: 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
});

🔗 関連ドキュメント