📦 注文ルートブロック
注文ルートブロックは、Nodeblocksアプリケーションにおける注文管理操作のための事前設定されたHTTPエンドポイントを提供します。これらのルートは、ハンドラー、バリデーター、ミドルウェアを組み合わせて、適切な認証、認可、エラー処理を備えた完全なAPIエンドポイントを作成します。
🎯 概要
注文ルートブロックは以下を目的として設計されています:
- 注文管理操作のための完全なAPIエンドポイントの提供
- 安全な操作のためのハンドラーとバリデーターの組み合わせ
- 認証と認可チェックの包含
- 関数コンポジションパターンのサポート
- ログとエラー管理の自動処理
📋 ルート構造
各注文ルートは一貫したパターンに従います:
- HTTPメソッド: 操作タイプを定義(GET、POST、PATCH、DELETE)
- パス: パラメータを含むエンドポイントURLを指定
- ハンドラー: ビジネスロジック用のコンポーズされた関数チェーン
- バリデーター: 認証と認可のチェック
🔧 利用可能な注文ルート
createOrderRoute
新しい注文を作成し、作成されたリソースを返します。
目的: 完全なリソース取得による注文作成を処理
ルート詳細:
- メソッド:
POST
- パス:
/orders
- 認証: 必須(Bearerトークン)
ハンドラー: createOrder
, getOrderById
, createOrderTerminator
バリデーター: verifyAuthentication
(getBearerTokenInfo), validateOrderAccess
(['owner'], getBearerTokenInfo)
使用方法:
import { routes } from '@nodeblocks/backend-sdk';
// Expressアプリでルートを登録
app.use('/api', routes.createOrderRoute);
getOrderRoute
IDで特定の注文を取得します。
目的: アクセス制御による注文データの取得
ルート詳細:
- メソッド:
GET
- パス:
/orders/:orderId
- 認証: 必須(Bearerトークン)
ハンドラー: getOrderById
, normalizeOrderTerminator
バリデーター: verifyAuthentication
(getBearerTokenInfo), some(validateResourceAccess
(['admin'], getBearerTokenInfo), validateOrderAccess
(['owner'], getBearerTokenInfo)))
使用方法:
import { routes } from '@nodeblocks/backend-sdk';
// Expressアプリでルートを登録
app.use('/api', routes.getOrderRoute);
findOrdersRoute
正規化されたリストフォーマットですべての注文を取得します。
目的: ページネーションとアクセス制御による注文リスト
ルート詳細:
- メソッド:
GET
- パス:
/orders
- 認証: 必須(Bearerトークン)
ハンドラー: findOrders
, normalizeOrdersListTerminator
バリデーター: verifyAuthentication
(getBearerTokenInfo), validateResourceAccess
(['admin', 'self'], getBearerTokenInfo)
使用方法:
import { routes } from '@nodeblocks/backend-sdk';
// Expressアプリでルートを登録
app.use('/api', routes.findOrdersRoute);
updateOrderRoute
既存の注文を更新し、更新されたリソースを返します。
目的: アクセス制御による注文データの変更
ルート詳細:
- メソッド:
PATCH
- パス:
/orders/:orderId
- 認証: 必須(Bearerトークン)
ハンドラー: updateOrder
, getOrderById
, normalizeOrderTerminator
バリデーター: verifyAuthentication
(getBearerTokenInfo), some(validateResourceAccess
(['admin'], getBearerTokenInfo), validateOrderAccess
(['owner'], getBearerTokenInfo)))
使用方法:
import { routes } from '@nodeblocks/backend-sdk';
// Expressアプリでルートを登録
app.use('/api', routes.updateOrderRoute);
deleteOrderRoute
IDで注文を削除します。
目的: アクセス制御による注文の削除
ルート詳細:
- メソッド:
DELETE
- パス:
/orders/:orderId
- 認証: 必須(Bearerトークン)
ハンドラー: deleteOrder
, deleteOrderTerminator
バリデーター: verifyAuthentication
(getBearerTokenInfo), some(validateResourceAccess
(['admin'], getBearerTokenInfo), validateOrderAccess
(['owner'], getBearerTokenInfo)))
使用方法:
import { routes } from '@nodeblocks/backend-sdk';
// Expressアプリでルートを登録
app.use('/api', routes.deleteOrderRoute);
📋 ルートパターン
認証要件
すべての注文ルートは有効なBearerトークンによる認証が必要です。
アクセス制御
注文ルートは以下のアクセスレベルをサポートします:
- owner: 注文の所有者アクセス
- admin: 管理者レベルアクセス
- self: ユーザー自身のリソースアクセス
エラー処理
すべてのルートには自動エラー処理とログが含まれています。
🔗 関連ドキュメント
- 注文ハンドラーブロック - 注文ビジネスロジック関数
- 注文スキーマブロック - 注文データ検証と契約
- 注文バリデーターブロック - 注文検証関数
- 注文フィーチャーブロック - 注文コンポーズ機能