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

📦 注文ルートブロック

注文ルートブロックは、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: ユーザー自身のリソースアクセス

エラー処理

すべてのルートには自動エラー処理とログが含まれています。


🔗 関連ドキュメント