🚀 属性機能
属性機能は、Nodeblocksアプリケーションで属性グループ管理操作のための完全な事前構成済み機能を提供します。これらの機能は、スキーマとルートを組み合わせて、適切なバリデーション、認証、エラーハンドリングを含む即座に使用可能なAPIエンドポイントを作成します。
🎯 概要
属性機能は以下の目的で設計されています:
- 完全なAPIエンドポイントの提供 - 属性グループ管理操作のためのエンドポイント
- スキーマとルートの組み合わせ - バリデーション済み操作のための統合
- 認証と認可のチェック - 変更操作での実装
- 関数型コンポジションパターンのサポート - 関数合成の対応
- ロギングとエラー管理のシームレスな処理 - 自動的なエラーハンドリング
📋 機能構造
各属性機能は一貫したコンポジションパターンに従います:
- Schema: 入力データとパラメータをバリデーション
- Route: ハンドラーを含むHTTPエンドポイントを提供
- 構成:
compose関数を使用してスキーマとルートを組み合わせ
🔧 利用可能な属性機能
createAttributeFeature
バリデーションとルーティングを含む新しい属性セットを作成します。
目的: 完全なバリデーションを含む属性グループの作成を処理
構成:
- Schema:
createAttributesSchema- nameとitems配列をバリデーション - Route:
createAttributeRoute- POST/attributes(作成ハンドラー付き)
使用例:
import { features } from '@nodeblocks/backend-sdk';
// データベース設定で使用
app.use('/api', defService(partial(features.createAttributeFeature, [{ dataStores: db }])));
APIエンドポイント: POST /api/attributes (認証: Bearer, admin)
getAttributeFeature
アクセス制御を含む個別の属性セットデータを取得します。
目的: 属性グループデータの取得
構成:
- Schema:
getAttributeSchema- パスパラメータをバリデーション - Route:
getAttributeRoute- GET/attributes/:attributeId(取得ハンドラー付き)
使用例:
import { features } from '@nodeblocks/backend-sdk';
// データベース設定で使用
app.use('/api', defService(partial(features.getAttributeFeature, [{ dataStores: db }])));
APIエンドポイント: GET /api/attributes/:attributeId
findAttributesFeature
フィルタリングとページネーションを含む属性セットの検索と一覧表示を行います。
目的: 検索とページネーションを含む属性グループの一覧表示を提供
構成:
- Schema:
findAttributesSchema- フィルタリング用のクエリパラメータをバリデーション - Route:
findAttributesRoute- GET/attributes(検索とページネーション付き)
使用例:
import { features } from '@nodeblocks/backend-sdk';
// データベース設定で使用
app.use('/api', defService(partial(features.findAttributesFeature, [{ dataStores: db }])));
APIエンドポイント: GET /api/attributes
updateAttributeFeature
バリデーションとアクセス制御を含む属性セットデータを更新します。
目的: 属性グループデータの変更(認証必須)
構成:
- Schema:
updateAttributesSchema- オプションのnameフィールドをバリデーション - Route:
updateAttributeRoute- PATCH/attributes/:attributeId(更新ハンドラー付き)
使用例:
import { features } from '@nodeblocks/backend-sdk';
// データベース設定で使用
app.use('/api', defService(partial(features.updateAttributeFeature, [{ dataStores: db }])));
APIエンドポイント: PATCH /api/attributes/:attributeId (認証: Bearer, admin)
deleteAttributeFeature
適切な認可を含む属性セットを削除します。
目的: 属性グループの削除(認証必須)
構成:
- Schema:
deleteAttributeSchema- パスパラメータをバリデーション - Route:
deleteAttributeRoute- DELETE/attributes/:attributeId(削除ハンドラー付き)
使用例:
import { features } from '@nodeblocks/backend-sdk';
// データベース設定で使用
app.use('/api', defService(partial(features.deleteAttributeFeature, [{ dataStores: db }])));
APIエンドポイント: DELETE /api/attributes/:attributeId (認証: Bearer, admin)