🔍 User スキーマブロック
User スキーマブロックは、Nodeblocks アプリケーションにおけるユーザー データ検証のための JSON Schema 定義を提供します。これらのスキーマはデータ整合性を確保し、ユーザー関連 API エンドポイントのための明確なコントラクトを提供します。
🎯 概要
User スキーマブロックは以下を目的として設計されています:
- 処理前にユーザー データを検証
- アプリケーション全体でユーザー データの一貫性を確保
- ユーザー API エンドポイントのための明確なコントラクトを提供
- TypeScript 統合でタイプセーフティを有効化
- 他のユーザー ブロックとのコンポジションをサポート
📋 User スキーマタイプ
ベースユーザー スキーマ
他のスキーマの基礎として使用されるコアユーザー エンティティ構造。
ユーザー作成スキーマ
必須フィールド検証付きのユーザー登録スキーマ。
ユーザー更新スキーマ
オプションのフィールド検証付きのプロファイル更新スキーマ。
ユーザークエリスクーマ
ユーザー フィルタリングとページネーションパラメータのためのスキーマ。
🔧 利用可能な User スキーマ
userSchema
JSON Schema 検証のためのベースユーザー スキーマ定義。
目的: ユーザー プロファイル データ検証のためのベーススキーマ
スキーマ詳細:
- タイプ:
object
- 追加プロパティ:
false
(厳密検証) - プロパティ:
identityId: string
- リンクされたアイデンティティ識別子name: string
- ユーザー表示名avatar?: Avatar | null
- ユーザー アバター オブジェクトまたは null
使用法:
import { schemas } from '@nodeblocks/backend-sdk';
const { userSchema } = schemas;
const validate = ajv.compile(userSchema as SchemaDefinition);
const isValid = validate({
identityId: "identity-123",
name: "John Doe",
avatar: null
});
createUserSchema
ユーザー登録のための必須フィールド付きのユーザー作成スキーマ。
目的: アイデンティティにリンクされたユーザー プロファイルの作成ペイロードを検証
スキーマ詳細:
- タイプ:
object
- 必須フィールド:
identityId
,name
- 追加プロパティ:
false
(厳密検証) - Content-Type:
application/json
- リクエストボディ:
required
使用法:
import { schemas } from '@nodeblocks/backend-sdk';
const { createUserSchema } = schemas;
const userSchema = createUserSchema({});
const validate = ajv.compile(userSchema.schemas as SchemaDefinition);
const isValid = validate({
identityId: "identity-123",
name: "New User"
});
updateUserSchema
プロファイル変更のためのオプションのフィールド付きのユーザー更新スキーマ。
Purpose: ユーザー プロファイルへの部分的な更新を検証
スキーマ詳細:
- タイプ:
object
- 必須フィールド: なし (すべてのフィールドがオプション)
- 追加プロパティ:
false
(厳密検証) - Content-Type:
application/json
- パラメータ:
profileId
(パスパラメータ)
使用法:
import { schemas } from '@nodeblocks/backend-sdk';
const { updateUserSchema } = schemas;
const userSchema = updateUserSchema({});
const validate = ajv.compile(userSchema.schemas as SchemaDefinition);
const isValid = validate({
name: "Jane Doe"
});
getUserSchema
単一のユーザーを取得するためのユーザー取得スキーマ。
Purpose: 特定のユーザーを取得するためのリクエストを検証。
スキーマ詳細:
- パラメータ:
profileId
(パスパラメータ) - 目的: 特定のユーザーを取得するためのリクエストを検証
使用法:
import { schemas } from '@nodeblocks/backend-sdk';
const { getUserSchema } = schemas;
const userSchema = getUserSchema({});
const validate = ajv.compile(userSchema.schemas as SchemaDefinition);
const isValid = validate({
profileId: 'profile123'
});
deleteUserSchema
ユーザーを削除するためのユーザー削除スキーマ。
目的: 特定のユーザーを削除するためのリクエストを検証。
スキーマ詳細:
- パラメータ:
profileId
(パスパラメータ) - 目的: 特定のユーザーを削除するためのリクエストを検証
使用法:
import { schemas } from '@nodeblocks/backend-sdk';
const { deleteUserSchema } = schemas;
const userSchema = deleteUserSchema({});
const validate = ajv.compile(userSchema.schemas as SchemaDefinition);
const isValid = validate({
profileId: 'profile123'
});
lockUserSchema
ユーザーアカウントをロックするためのユーザーロックスキーマ。
目的: 特定のユーザーアカウントをロックするためのリクエストを検証。
スキーマ詳細:
- パラメータ:
identityId
(パスパラメータ) - 目的: 特定のユーザーアカウントをロックするためのリクエストを検証
使用法:
import { schemas } from '@nodeblocks/backend-sdk';
const { lockUserSchema } = schemas;
const userSchema = lockUserSchema({});
const validate = ajv.compile(userSchema.schemas as SchemaDefinition);
const isValid = validate({
identityId: 'identity123'
});
unlockUserSchema
ユーザーアカウントのロックを解除するためのユーザーアンロックスキーマ。
目的: 特定のユーザーアカウントのロックを解除するためのリクエストを検証。
スキーマ詳細:
- パラメータ:
identityId
(パスパラメータ) - 目的: 特定のユーザーアカウントのロックを解除するためのリクエストを検証
使用法:
import { schemas } from '@nodeblocks/backend-sdk';
const { unlockUserSchema } = schemas;
const userSchema = unlockUserSchema({});
const validate = ajv.compile(userSchema.schemas as SchemaDefinition);
const isValid = validate({
identityId: 'identity123'
});
findUsersSchema
フィルタリングとページネーション付きでユーザーを検索するためのユーザー検索スキーマ。
目的: ユーザーの検索とページネーションのためのリクエストを検証。
スキーマ詳細:
- クエリパラメータ:
identityId?: string
(アイデンティティによるオプションのフィルター)name?: string
(名前によるオプションのフィルター)page?: number
(ページネーション)limit?: number
(ページネーション)
- 目的: ユーザーの検索とページネーションのためのリクエストを検証
使用法:
import { schemas } from '@nodeblocks/backend-sdk';
const { findUsersSchema } = schemas;
const usersSchema = findUsersSchema({});
const validate = ajv.compile(usersSchema.schemas as SchemaDefinition);
const isValid = validate({
name: 'John',
page: 1,
limit: 10
});
🔗 関連ドキュメント
- User ハンドラーブロック - ユーザー業務ロジック関数