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

📦 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

スキーマ検証とルーティングを使用した注文更新フィーチャー。

目的: 適切な検証を使用して注文情報を変更します

構成:

使用例:

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

ルーティングを使用した注文削除フィーチャー。

目的: アクセス制御とクリーンアップを使用して注文を削除します

構成:

使用例:

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