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

📦 Order ルートブロック

Order ルートブロックは、NodeBlocks アプリケーションの注文管理操作のための事前構成 HTTP エンドポイントを提供します。これらのルートはハンドラー、検証子、ミドルウェアを組み合わせて、適切な認証、認可、エラーハンドリングを使用した完全な API エンドポイントを作成します。


🎯 概要

Order ルートブロックは次のことを目的として設計されています:

  • 注文管理操作のための完全な API エンドポイントを提供する
  • 安全な操作のためにハンドラーと検証子を組み合わせる
  • 認証と認可チェックを含む
  • 関数型構成パターンをサポートする
  • ログ記録とエラー管理を自動的に処理する

📋 ルート構造

各注文ルートは、一貫したパターンを従います:

  • HTTP Method: 操作タイプを定義(GET, POST, PATCH, DELETE)
  • Path: パラメーター付きのエンドポイント URL を指定
  • Handler: ビジネスロジックのための構成された関数チェーン
  • Validators: 認証と認可チェック

🔧 利用可能な Order ルート

createOrderRoute

新しい注文を作成し、作成されたリソースを返します。

目的: 完全なリソース取得を使用して注文作成を処理します

Route Details:

  • Method: POST
  • Path: /orders
  • Authentication: 必須(Bearer トークン)

Handlers: createOrder, getOrderById, createOrderTerminator

Validators: isAuthenticated, some(checkIdentityType(['admin']), isSelf(['params', 'requestBody', 'identityId']))

使用例:

import { routes } from '@nodeblocks/backend-sdk';

// Express アプリにルートを登録
app.use('/api', routes.createOrderRoute);

getOrderRoute

ID によって特定の注文を取得します。

目的: アクセス制御を使用して注文データを取得します

Route Details:

  • Method: GET
  • Path: /orders/:orderId
  • Authentication: 必須(Bearer トークン)

Handlers: getOrderById, normalizeOrderTerminator

Validators: isAuthenticated, some(checkIdentityType(['admin']), ownsOrder(['params', 'requestParams', 'orderId']))

使用例:

import { routes } from '@nodeblocks/backend-sdk';

// Express アプリにルートを登録
app.use('/api', routes.getOrderRoute);

findOrdersRoute

正規化されたリスト形式ですべての注文を取得します。

目的: ページネーションとアクセス制御を使用して注文をリストします

Route Details:

  • Method: GET
  • Path: /orders
  • Authentication: 必須(Bearer トークン)

Handlers: findOrders, normalizeOrdersListTerminator

Validators: isAuthenticated, some(checkIdentityType(['admin']), isSelf(['params', 'requestQuery', 'identityId']))

使用例:

import { routes } from '@nodeblocks/backend-sdk';

// Express アプリにルートを登録
app.use('/api', routes.findOrdersRoute);

updateOrderRoute

既存の注文を更新し、更新されたリソースを返します。

目的: アクセス制御を使用して注文データを変更します

Route Details:

  • Method: PATCH
  • Path: /orders/:orderId
  • Authentication: 必須(Bearer トークン)

Handlers: updateOrder, getOrderById, normalizeOrderTerminator

Validators: isAuthenticated, some(checkIdentityType(['admin']), ownsOrder(['params', 'requestParams', 'orderId']))

使用例:

import { routes } from '@nodeblocks/backend-sdk';

// Express アプリにルートを登録
app.use('/api', routes.updateOrderRoute);

deleteOrderRoute

ID によって注文を削除します。

目的: アクセス制御を使用して注文を削除します

Route Details:

  • Method: DELETE
  • Path: /orders/:orderId
  • Authentication: 必須(Bearer トークン)

Handlers: deleteOrder, deleteOrderTerminator

Validators: isAuthenticated, some(checkIdentityType(['admin']), ownsOrder(['params', 'requestParams', 'orderId']))

使用例:

import { routes } from '@nodeblocks/backend-sdk';

// Express アプリにルートを登録
app.use('/api', routes.deleteOrderRoute);