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

🚀 属性フィーチャーブロック

属性フィーチャーブロックは、Nodeblocksアプリケーションにおける属性管理操作のための完全な事前構成済み機能を提供します。これらのフィーチャーは、適切な検証、認証、エラー処理による即座に使用可能なAPIエンドポイントを作成するために、スキーマとルートを組み合わせます。


🎯 概要

属性フィーチャーブロックは以下を目的として設計されています:

  • 属性管理操作のための完全なAPIエンドポイントの提供
  • 検証済み操作のためのスキーマとルートの組み合わせ
  • 認証と認可チェックの自動実装
  • 関数コンポジションパターンのサポート
  • ログとエラー管理の円滑な処理

📋 フィーチャー構造

各属性フィーチャーは一貫したコンポジションパターンに従います:

  • スキーマ: 入力データとパラメータの検証
  • ルート: ハンドラー付きHTTPエンドポイントの提供
  • コンポジション: compose関数を使用したスキーマとルートの結合

🔧 利用可能な属性フィーチャー

createAttributeFeature

検証とルーティング付き新しい属性セットを作成します。

目的: 完全な検証による属性セット作成を処理

コンポジション:

使用方法:

import { features } from '@nodeblocks/backend-sdk';

// 直接使用(ハンドラーにdataStoresが必要)
app.use('/api', defService(features.createAttributeFeature));

// データベース設定付き
app.use('/api', defService(partial(features.createAttributeFeature, [{ dataStores: db }])));

APIエンドポイント: POST /api/attributes


getAttributeFeature

アクセス制御付き個別属性セットデータを取得します。

目的: 適切な認可による属性セットデータの取得

コンポジション:

使用方法:

import { features } from '@nodeblocks/backend-sdk';

// 直接使用(ハンドラーにdataStoresが必要)
app.use('/api', defService(features.getAttributeFeature));

// データベース設定付き
app.use('/api', defService(partial(features.getAttributeFeature, [{ dataStores: db }])));

APIエンドポイント: GET /api/attributes/:attributeId


findAttributesFeature

フィルタリングとページネーション付き属性セットの検索とリストを行います。

目的: 検索機能付き属性セットリストの提供

コンポジション:

使用方法:

import { features } from '@nodeblocks/backend-sdk';

// 直接使用(ハンドラーにdataStoresが必要)
app.use('/api', defService(features.findAttributesFeature));

// データベース設定付き
app.use('/api', defService(partial(features.findAttributesFeature, [{ dataStores: db }])));

APIエンドポイント: GET /api/attributes


updateAttributeFeature

検証とアクセス制御付き属性セットデータを更新します。

目的: 適切な認可による属性セットデータの変更

コンポジション:

使用方法:

import { features } from '@nodeblocks/backend-sdk';

// 直接使用(ハンドラーにdataStoresが必要)
app.use('/api', defService(features.updateAttributeFeature));

// データベース設定付き
app.use('/api', defService(partial(features.updateAttributeFeature, [{ dataStores: db }])));

APIエンドポイント: PUT /api/attributes/:attributeId


deleteAttributeFeature

適切な認可による属性セットを削除します。

目的: アクセス制御による属性セットの削除

コンポジション:

使用方法:

import { features } from '@nodeblocks/backend-sdk';

// 直接使用(ハンドラーにdataStoresが必要)
app.use('/api', defService(features.deleteAttributeFeature));

// データベース設定付き
app.use('/api', defService(partial(features.deleteAttributeFeature, [{ dataStores: db }])));

APIエンドポイント: DELETE /api/attributes/:attributeId