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

📦 Product 機能ブロック

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


🎯 概要

Product 機能ブロックは以下を目的として設計されています:

  • 完全な製品管理を提供 完全な CRUD 操作付き
  • 効率的な一括製品処理のためのバッチ操作をサポート
  • 安全な製品操作のための検証とルーティングを含む
  • 製品一覧のフィルタリングとページネーションをサポート
  • 製品コピーと重複ワークフローを処理

📋 機能構造

各製品機能は、一貫した構成パターンに従います:

  • スキーマ: 製品の入力データとパラメータを検証
  • ルート: 製品ハンドラー付きの HTTP エンドポイントを提供
  • 構成: compose 関数を使用してスキーマとルートを組み合わせ

🔧 利用可能な Product 機能

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


getProductImageUploadUrlFeature

製品画像をアップロードするための署名付き URL を生成します。

目的: ユニークなオブジェクト名付きで署名付きアップロード URL を発行し、生成された objectId とともに返します

構成:

使用法:

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

// ファイルストレージサービスを構成に含めて:
app.use(
'/api',
defService(partial(features.getProductImageUploadUrlFeature, [{ configuration: { fileStorageDriver } }]))
);

API エンドポイント: GET /api/products/:productId/image-upload-url