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

🔍 カテゴリスクーマブロック

カテゴリスクーマブロックは、NodeBlocks アプリケーションにおけるカテゴリデータ検証のための JSON Schema 定義を提供します。これらのスキーマは、データ整合性を確保し、カテゴリ関連の API エンドポイントに対する明確なコントラクトを提供します。


🎯 概要

カテゴリスクーマブロックは次のことを目的として設計されています:

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

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

ベースカテゴリスクーマ

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

カテゴリ作成スキーマ

必須フィールド検証を使用したカテゴリ作成のためのスキーマ。

カテゴリ更新スキーマ

オプションのフィールド検証を使用したカテゴリ変更のためのスキーマ。

カテゴリクエリスクーマ

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


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

categorySchema

コアカテゴリフィールドを使用したベースカテゴリスクーマ。

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

スキーマ詳細:

  • タイプ: object
  • 必須フィールド: なし
  • 追加プロパティ: false(厳密な検証)
  • プロパティ:
    • 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

新規カテゴリのための必須フィールドを使用したカテゴリ作成スキーマ。

目的: 作成時にカテゴリデータを検証します

スキーマ詳細:

  • タイプ: 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
});

🔗 関連ドキュメント