メインコンテンツまでスキップ
バージョン: 0.4.2

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

カテゴリスキーマブロックは、Nodeblocksアプリケーションにおけるカテゴリデータ検証のためのJSONスキーマ定義を提供します。これらのスキーマは、データ整合性を確保し、カテゴリ関連の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: '電子機器',
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
});

🔗 関連ドキュメント