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

🚀 属性機能ブロック

属性機能ブロックは、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

フィルタリングとページネーションを伴って属性セットを検索・一覧表示します。

目的: 検索機能を備えた属性セットの一覧提供を行います

構成:

  • スキーマ: findAttributesSchema - フィルタリング用のクエリパラメータを検証します
  • ルート: findAttributesRoute - 検索とページネーションを伴う GET /attributes

使用例:

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 エンドポイント: PATCH /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