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

🛍️ 商品フィーチャーブロック

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


🎯 概要

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

  • 完全なCRUD操作による完全な商品管理の提供
  • バッチ操作による効率的な一括商品処理
  • 商品検索とフィルタリング機能の実現
  • 商品コピー機能によるカタログ管理の実現
  • 安全な商品操作のための検証とルーティングの実装
  • ページネーションによる大規模商品コレクションのサポート

📋 フィーチャー構造

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

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

🔧 利用可能な商品フィーチャー

createProductFeature

検証とルーティング付き新しい商品を作成します。

目的: 完全な検証による商品作成を処理

コンポジション:

使用方法:

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

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

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

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


createProductBatchFeature

スキーマ検証とルーティング付きバッチ商品作成機能。

目的: 検証による複数商品の一括作成を処理

コンポジション:

使用方法:

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

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

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

APIエンドポイント: POST /api/products/batch


getProductFeatures

アクセス制御付き個別商品データ取得機能。

目的: 適切な認可による商品データの取得

コンポジション:

使用方法:

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

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

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

APIエンドポイント: GET /api/products/:productId


findProductsFeatures

フィルタリングとページネーション付き商品検索機能。

目的: 検索機能付き商品リストの提供

コンポジション:

  • スキーマ: findProductsSchema - フィルタリング用クエリパラメータを検証
  • ルート: findProductsRoute - GET /products 検索とページネーション付き

使用方法:

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

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

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

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


editProductFeatures

検証とアクセス制御付き商品データ更新機能。

目的: 適切な認可による商品データの変更

コンポジション:

使用方法:

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

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

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

APIエンドポイント: PUT /api/products/:productId


editProductBatchFeatures

スキーマ検証とルーティング付きバッチ商品更新機能。

目的: 検証による複数商品の一括更新を処理

コンポジション:

使用方法:

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

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

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

APIエンドポイント: PUT /api/products/batch


deleteProductFeatures

アクセス制御付き商品削除機能。

目的: アクセス制御による商品の削除

コンポジション:

使用方法:

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

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

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

APIエンドポイント: DELETE /api/products/:productId


deleteProductBatchFeatures

スキーマ検証とルーティング付きバッチ商品削除機能。

目的: 検証による複数商品の一括削除を処理

コンポジション:

使用方法:

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

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

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

APIエンドポイント: DELETE /api/products/batch


📋 商品コピーフィーチャー

copyProductFeatures

ルーティング付き商品コピー機能。

目的: 適切な複製による商品のコピーを作成

コンポジション:

使用方法:

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

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

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

APIエンドポイント: POST /api/products/:productId/copy


copyProductBatchFeatures

スキーマ検証とルーティング付きバッチ商品コピー機能。

目的: 検証による複数商品の一括複製を処理

コンポジション:

使用方法:

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

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

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

APIエンドポイント: POST /api/products/batch/copy


🔗 関連ドキュメント