📦 Order 機能ブロック
Order フィーチャーブロックは、NodeBlocks アプリケーションの注文管理操作のための完全な事前構成機能を備えています。これらのフィーチャーはスキーマ、ルート、ハンドラーを組み合わせて、注文 CRUD 操作、検索、ライフサイクル管理のためのすぐに使用可能な API エンドポイントを作成します。
🎯 概要
Order 機能ブロックは次のことを目的として設計されています:
- 完全な CRUD 操作を使用した完全な注文管理を提供する
- 作成から完了までの注文ライフサイクル管理をサポートする
- 安全な注文操作のための検証とルーティングを含む
- 注文リストのためのフィルタリングとページネーションをサポートする
- 注文アイテムと合計計算を処理する
📋 機能構造
各注文機能は、一貫した構成パターンを従います:
- スキーマ: 注文入力データとパラメーターを検証します
- ルート: 注文ハンドラー付きの HTTP エンドポイントを提供します
- 構成:
compose
関数を使用してスキーマとルートを組み合わせます
🔧 利用可能な Order 機能
createOrderFeature
スキーマ検証とルーティングを使用した注文作成フィーチャー。
目的: 完全な検証を使用して注文作成を処理します
構成:
- スキーマ:
createOrderSchema
- アイテム配列、合計、オプションのフィールドを検証 - ルート:
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
- 更新ハンドラーで PATCH/orders/:orderId
使用例:
import { features } from '@nodeblocks/backend-sdk';
// 直接使用(ハンドラーで dataStores が必要)
app.use('/api', defService(features.updateOrderFeature));
// データベース構成を使用
app.use('/api', defService(partial(features.updateOrderFeature, [{ dataStores: db }])));
API エンドポイント: PATCH /api/orders/:orderId
getOrderFeature
個別の注文データを取得するための注文取得フィーチャー。
目的: 適切な検証を使用して注文情報を取得します
構成:
- スキーマ:
getOrderSchema
- パスパラメーターを検証 - ルート:
getOrderRoute
- 取得ハンドラーで GET/orders/:orderId
使用例:
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
フィルタリングとページネーションを使用した注文検索フィーチャー。
目的: 検索機能を備えた注文リストを提供します
構成:
- スキーマ:
findOrdersSchema
- フィルタリングのためのクエリパラメーターを検証 - ルート:
findOrdersRoute
- 検索とページネーションで GET/orders
使用例:
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
ルーティングを使用した注文削除フィーチャー。
目的: アクセス制御とクリーンアップを使用して注文を削除します
構成:
- スキーマ:
deleteOrderSchema
- パスパラメーターを検証 - ルート:
deleteOrderRoute
- 削除ハンドラーで DELETE/orders/:orderId
使用例:
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