📦 注文フィーチャーブロック
注文フィーチャーブロックは、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
スキーマ検証とアクセス制御付き注文更新機能。
目的: 適切な認可による注文データの変更
コンポジション:
- スキーマ:
updateOrderSchema
- 部分的注文プロパティを検証 - ルート:
updateOrderRoute
- PUT/orders/:id
更新ハンドラー付き
使用方法:
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
🔗 関連ドキュメント
- 注文スキーマブロック - 注文データ検証と契約
- 注文ハンドラーブロック - 注文ビジネスロジック機能
- 注文ルートブロック - 注文HTTPエンドポイント定義