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

📦 注文フィーチャーブロック

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


🎯 概要

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

  • 完全なCRUD操作による完全な注文管理の提供
  • 作成から完了まで注文ライフサイクル管理のサポート
  • 安全な注文操作のための検証とルーティングの実装
  • 注文リストのためのフィルタリングとページネーションのサポート
  • 注文アイテムと合計計算の処理

📋 フィーチャー構造

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

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

🔧 利用可能な注文フィーチャー

createOrderFeature

スキーマ検証とルーティング付き注文作成機能。

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

コンポジション:

  • スキーマ: createOrderSchema - items配列、total、オプションフィールドを検証
  • ルート: createOrderRoute - POST /orders 作成ハンドラー付き

使用方法:

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

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

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

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


updateOrderFeature

スキーマ検証とアクセス制御付き注文更新機能。

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

コンポジション:

使用方法:

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

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

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

APIエンドポイント: PUT /api/orders/:orderId


getOrderFeature

アクセス制御付き注文取得機能。

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

使用方法:

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

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

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

APIエンドポイント: GET /api/orders/:orderId


findOrdersFeature

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

目的: 検索機能付き注文リストの提供

使用方法:

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

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

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

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


deleteOrderFeature

適切な認可による注文削除機能。

目的: アクセス制御による注文の削除

使用方法:

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

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

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

APIエンドポイント: DELETE /api/orders/:orderId


🔗 関連ドキュメント