🚀 カテゴリ機能
カテゴリ機能は、Nodeblocksアプリケーションでカテゴリ管理操作のための完全な、事前に構成された機能を提供します。これらの機能は、スキーマ、ルート、ハンドラーを組み合わせて、カテゴリのCRUD操作、ステータス管理、階層構造のための即座に使用可能なAPIエンドポイントを作成します。
🎯 概要
カテゴリ機能は以下の目的で設計されています:
- 完全なカテゴリ管理を提供 - 完全なCRUD操作を含む
- 階層構造をサポート - 親子関係を持つ
- カテゴリステータス管理を処理 - (有効化/無効化操作)
- 安全な操作のためにバリデーションとルーティングを含む
- カテゴリリストのフィルタリングとページネーションをサポート
📋 機能構造
各カテゴリ機能は一貫した合成パターンに従います:
- スキーマ: カテゴリ入力データとパラメータを検証
- ルート: カテゴリハンドラーを持つHTTPエンドポイントを提供
- 合成:
compose関数を使用してスキーマとルートを組み合わせる
🔧 利用可能なカテゴリ機能
createCategoryFeature
バリデーションとルーティングを使用して新しいカテゴリを作成します。
目的: 完全なバリデーションでカテゴリの作成を処理
合成:
- スキーマ:
createCategorySchema- name、description、status、およびオプションのparentを検証 - ルート:
createCategoryRoute- 作成ハンドラーを持つPOST/categories
使用例:
import { features } from '@nodeblocks/backend-sdk';
// With database configuration
app.use('/api', defService(partial(features.createCategoryFeature, [{ dataStores: db }])));
APIエンドポイント: POST /api/categories
getCategoryFeatures
アクセス制御を使用して個別のカテゴリデータを取得します。
目的: 適切なバリデーションでカテゴリ情報を取得
合成:
- スキーマ:
getCategorySchema- パスパラメータを検証 - ルート:
getCategoryRoute- 取得ハンドラーを持つGET/categories/:categoryId
使用例:
import { features } from '@nodeblocks/backend-sdk';
// With database configuration
app.use('/api', defService(partial(features.getCategoryFeatures, [{ dataStores: db }])));
APIエンドポイント: GET /api/categories/:categoryId
findCategoriesFeatures
フィルタリングとページネーションを使用してカテゴリを検索およびリスト表示します。
目的: 検索機能を持つカテゴリリストを提供
合成:
- スキーマ:
findCategoriesSchema- フィルタリング用のクエリパラメータを検証 - ルート:
findCategoriesRoute- 検索とページネーションを持つGET/categories
使用例:
import { features } from '@nodeblocks/backend-sdk';
// With database configuration
app.use('/api', defService(partial(features.findCategoriesFeatures, [{ dataStores: db }])));
APIエンドポイント: GET /api/categories
editCategoryFeatures
バリデーションとアクセス制御を使用してカテゴリデータを更新します。
目的: 適切なバリデーションでカテゴリ情報を変更
合成:
- スキーマ:
updateCategorySchema- オプションのname、description、parentを検証 - ルート:
updateCategoryRoute- 更新ハンドラーを持つPATCH/categories/:categoryId
使用例:
import { features } from '@nodeblocks/backend-sdk';
// With database configuration
app.use('/api', defService(partial(features.editCategoryFeatures, [{ dataStores: db }])));
APIエンドポイント: PATCH /api/categories/:categoryId
enableCategoryStatusFeatures
無効化されたカテゴリを有効化して可視性を復元します。
目的: カテゴリの可視性と機能を有効化
合成:
- スキーマ:
enableCategorySchema- パスパラメータを検証 - ルート:
enableCategoryRoute- 有効化ハンドラーを持つPOST/categories/:categoryId/enable
使用例:
import { features } from '@nodeblocks/backend-sdk';
// With database configuration
app.use('/api', defService(partial(features.enableCategoryStatusFeatures, [{ dataStores: db }])));
APIエンドポイント: POST /api/categories/:categoryId/enable
disableCategoryStatusFeatures
有効化されたカテゴリを無効化してリストから非表示にします。
目的: カテゴリの可視性と機能を無効化
合成:
- スキーマ:
disableCategorySchema- パスパラメータを検証 - ルート:
disableCategoryRoute- 無効化ハンドラーを持つPOST/categories/:categoryId/disable
使用例:
import { features } from '@nodeblocks/backend-sdk';
// With database configuration
app.use('/api', defService(partial(features.disableCategoryStatusFeatures, [{ dataStores: db }])));
APIエンドポイント: POST /api/categories/:categoryId/disable
editCategoryStatusFeatures
カテゴリステータス管理のために有効化と無効化操作を組み合わせます。
目的: 完全なカテゴリステータス管理機能を提供
合成:
- 機能:
enableCategoryStatusFeatures,disableCategoryStatusFeatures- 両方のステータス操作を組み合わせる
使用例:
import { features } from '@nodeblocks/backend-sdk';
// With database configuration
app.use('/api', defService(partial(features.editCategoryStatusFeatures, [{ dataStores: db }])));
APIエンドポイント:
POST /api/categories/:categoryId/enable- カテゴリを有効化POST /api/categories/:categoryId/disable- カテゴリを無効化
deleteCategoryFeatures
適切なバリデーションとクリーンアップを使用してカテゴリを削除します。
目的: アクセス制御とクリーンアップでカテゴリを削除
合成:
- スキーマ:
deleteCategorySchema- パスパラメータを検証 - ルート:
deleteCategoryRoute- 削除ハンドラーを持つDELETE/categories/:categoryId
使用例:
import { features } from '@nodeblocks/backend-sdk';
// With database configuration
app.use('/api', defService(partial(features.deleteCategoryFeatures, [{ dataStores: db }])));
APIエンドポイント: DELETE /api/categories/:categoryId