🛣️ ユーザールートブロック
ユーザールートブロックは、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);
🔗 関連ドキュメント
- ユーザースキーマブロック - ユーザーデータ検証と契約
- ユーザーハンドラーブロック - ユーザービジネスロジック機能
- ユーザーフィーチャーブロック - ユーザーコンポーズド機能