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

🛣️ ユーザールートブロック

ユーザールートブロックは、Nodeblocksアプリケーションにおけるユーザー管理操作のための事前設定されたHTTPエンドポイントを提供します。これらのルートは、適切な認証、認可、エラー処理による完全なAPIエンドポイントを作成するために、ハンドラー、バリデーター、ミドルウェアを組み合わせます。


🎯 概要

ユーザールートブロックは以下を目的として設計されています:

  • ユーザー管理操作のための完全なAPIエンドポイントの提供
  • 安全な操作のためのハンドラーとバリデーターの組み合わせ
  • 認証と認可チェックの実装
  • 関数コンポジションパターンのサポート
  • ログとエラー管理の自動処理

📋 ルート構造

各ユーザールートは一貫したパターンに従います:

  • HTTPメソッド: 操作タイプの定義(GET、POST、PATCH、DELETE)
  • パス: パラメータ付きエンドポイントURLの指定
  • ハンドラー: ビジネスロジックのためのコンポーズド関数チェーン
  • バリデーター: 認証と認可のチェック

🔧 利用可能なユーザールート

createUserRoute

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

目的: ユーザー登録を処理

ルート詳細:

  • メソッド: POST
  • パス: /users
  • 認証: 必須(Bearerトークン)

ハンドラー: createUser, getUserById, normalizeUserTerminator

バリデーター: verifyAuthentication(getBearerTokenInfo)

使用方法:

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

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

getUserRoute

IDで特定のユーザーを取得します。

目的: アクセス制御付きユーザープロフィールデータを取得

ルート詳細:

  • メソッド: GET
  • パス: /users/:userId
  • 認証: 必須(Bearerトークン)

ハンドラー: getUserById, normalizeUserTerminator

バリデーター: verifyAuthentication(getBearerTokenInfo), validateUserProfileAccess(['admin', 'self'], getBearerTokenInfo)

使用方法:

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

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

findUsersRoute

正規化されたリストフォーマットですべてのユーザーを取得します。

目的: ページネーション付きユーザーをリストし、管理者のみのアクセス

ルート詳細:

  • メソッド: GET
  • パス: /users
  • 認証: 必須(Bearerトークン)

ハンドラー: findUsers, normalizeUsersListTerminator

バリデーター: verifyAuthentication(getBearerTokenInfo), validateUserProfileAccess(['admin'], getBearerTokenInfo)

使用方法:

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

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

updateUserRoute

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

目的: アクセス制御付きユーザーデータを変更

ルート詳細:

  • メソッド: PATCH
  • パス: /users/:userId
  • 認証: 必須(Bearerトークン)

ハンドラー: updateUser, getUserById, normalizeUserTerminator

バリデーター: verifyAuthentication(getBearerTokenInfo), validateUserProfileAccess(['admin', 'self'], getBearerTokenInfo)

使用方法:

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

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

deleteUserRoute

IDでユーザーを削除します。

目的: アクセス制御付きユーザーアカウントを削除

ルート詳細:

  • メソッド: DELETE
  • パス: /users/:userId
  • 認証: 必須(Bearerトークン)

ハンドラー: deleteUser, deleteUserTerminator

バリデーター: verifyAuthentication(getBearerTokenInfo), validateUserProfileAccess(['admin', 'self'], getBearerTokenInfo)

使用方法:

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

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

lockUserRoute

ユーザーアカウントをロックしてアクセスを防ぎます。

目的: アクセスを無効化(管理者のみ)

ルート詳細:

  • メソッド: POST
  • パス: /users/:userId/lock
  • 認証: 必須(Bearerトークン)

ハンドラー: lockUser, lockUserTerminator

バリデーター: verifyAuthentication(getBearerTokenInfo), validateUserProfileAccess(['admin', 'self'], getBearerTokenInfo)

使用方法:

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

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

unlockUserRoute

ユーザーアカウントをアンロックしてアクセスを復元します。

目的: アクセスを有効化(管理者のみ)

ルート詳細:

  • メソッド: POST
  • パス: /users/:userId/unlock
  • 認証: 必須(Bearerトークン)

ハンドラー: unlockUser, unlockUserTerminator

バリデーター: verifyAuthentication(getBearerTokenInfo), validateUserProfileAccess(['admin', 'self'], getBearerTokenInfo)

使用方法:

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

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

🔗 関連ドキュメント