🚀 アイデンティティ機能
アイデンティティ機能は、NodeBlocksアプリケーションでのアイデンティティ管理操作用の完全な事前構成機能を提供します。これらの機能は、スキーマとルートを組み合わせて、適切な検証、認証、エラーハンドリングを含む即座に使用可能なAPIエンドポイントを作成します。
🎯 概要
アイデンティティ機能は以下の目的で設計されています:
- アイデンティティ管理操作用の完全なAPIエンドポイントの提供
- 検証された操作用のスキーマとルートの組み合わせ
- 認証と認可チェックの自動包含
- 関数合成パターンのサポート
- ログ記録とエラー管理のシームレスな処理
📋 機能構造
各アイデンティティ機能は一貫した合成パターンに従います:
- Schema: 入力データとパラメータを検証します
- Route: ブロックを含むHTTPエンドポイントを提供します
- 構成:
compose関数を使用してスキーマとルートを組み合わせます
🔧 利用可能なアイデンティティ機能
getIdentityFeatures
スキーマ検証とルーティングを含むアイデンティティ取得機能。
目的: 適切な認可でアイデンティティデータを取得します
構成:
- Schema:
getIdentitySchema- アイデンティティIDパラメータを検証します - Route:
getIdentityRoute- 取得ハンドラーを含む GET/identities/:identityId
使用例:
import { features } from '@nodeblocks/backend-sdk';
// With database configuration
app.use('/api', defService(partial(features.getIdentityFeatures, [{ dataStores: db }])));
APIエンドポイント: GET /api/identities/:identityId
findIdentitiesFeatures
スキーマ検証とルーティングを含むアイデンティティリスト表示機能。
目的: 検索機能を含むアイデンティティリスト表示を提供します
構成:
- Schema:
findIdentitySchema- フィルタリング用のクエリパラメータを検証します - Route:
findIdentitiesRoute- 検索とページネーションを含む GET/identities
使用例:
import { features } from '@nodeblocks/backend-sdk';
// With database configuration
app.use('/api', defService(partial(features.findIdentitiesFeatures, [{ dataStores: db }])));
APIエンドポイント: GET /api/identities
updateIdentityFeatures
スキーマ検証とルーティングを含むアイデンティティ更新機能。
目的: 適切な認可でアイデンティティデータを変更します
構成:
- Schema:
updateIdentitySchema- アイデンティティ更新データを検証します - Route:
updateIdentityRoute- 更新ハンドラーを含む PATCH/identities/:identityId
使用例:
import { features } from '@nodeblocks/backend-sdk';
// With database configuration
app.use('/api', defService(partial(features.updateIdentityFeatures, [{ dataStores: db }])));
APIエンドポイント: PATCH /api/identities/:identityId
deleteIdentityFeatures
スキーマ検証とルーティングを含むアイデンティティ削除機能。
目的: アクセス制御を含むアイデンティティを削除します
構成:
- Schema:
deleteIdentitySchema- アイデンティティIDパラメータを検証します - Route:
deleteIdentityRoute- 削除ハンドラーを含む DELETE/identities/:identityId
使用例:
import { features } from '@nodeblocks/backend-sdk';
// With database configuration
app.use('/api', defService(partial(features.deleteIdentityFeatures, [{ dataStores: db }])));
APIエンドポイント: DELETE /api/identities/:identityId
lockIdentityFeature
スキーマ検証とルーティングを含むアイデンティティロック機能。
目的: 適切な認可でセキュリティ目的でアイデンティティをロックします。
構成:
- Schema:
lockIdentitySchema- アイデンティティIDパラメータを検証します - Route:
lockIdentityRoute- ロックハンドラーを含む POST/identities/:identityId/lock
使用例:
import { features } from '@nodeblocks/backend-sdk';
// With database configuration
app.use('/api', defService(partial(features.lockIdentityFeature, [{ dataStores: db }])));
APIエンドポイント: POST /api/identities/:identityId/lock
レスポンス (204 No Content):
{}
主な機能:
- 認可制御: 管理者ユーザーへのアクセスを制限します
- アトミック操作: MongoDBアトミック更新操作を使用します
- エラーハンドリング: 検証とデータベース障害に対する包括的なエラーハンドリング
認可:
- 認証が必要です
- 管理者ユーザーのみがアクセス可能です
エラーレスポンス:
401: Unauthorized - 無効または欠落している認証403: Forbidden - ユーザーに管理者権限がない404: Not Found - アイデンティティが存在しない500: Internal Server Error - データベース操作が失敗した
unlockIdentityFeature
スキーマ検証とルーティングを含むアイデンティティアンロック機能。
目的: 適切な認可で以前にロックされたアイデンティティをアンロックします。
構成:
- Schema:
unlockIdentitySchema- アイデンティティIDパラメータを検証します - Route:
unlockIdentityRoute- アンロックハンドラーを含む POST/identities/:identityId/unlock
使用例:
import { features } from '@nodeblocks/backend-sdk';
// With database configuration
app.use('/api', defService(partial(features.unlockIdentityFeature, [{ dataStores: db }])));
APIエンドポイント: POST /api/identities/:identityId/unlock
レスポンス (204 No Content):
{}
主な機能:
- 認可制御: 管理者ユーザーへのアクセスを制限します
- アトミック操作: MongoDBアトミック更新操作を使用します
- エラーハンドリング: 検証とデータベース障害に対する包括的なエラーハンドリング
認可:
- 認証が必要です
- 管理者ユーザーのみがアクセス可能です
エラーレスポンス:
401: Unauthorized - 無効または欠落している認証403: Forbidden - ユーザーに管理者権限がない404: Not Found - アイデンティティが存在しない500: Internal Server Error - データベース操作が失敗した
🔗 関連ドキュメント
- アイデンティティスキーマ - アイデンティティデータ検証と契約
- アイデンティティブロック - アイデンティティビジネスロジック関数
- アイデンティティルート - HTTPエンドポイント定義