🔍 ユーザースキーマブロック
ユーザースキーマブロックは、Nodeblocksアプリケーションにおけるユーザーデータ検証のためのJSONスキーマ定義を提供します。これらのスキーマは、データ整合性を確保し、ユーザー関連のAPIエンドポイントの明確な契約を提供します。
🎯 概要
ユーザースキーマブロックは以下を目的として設計されています:
- 処理前のユーザーデータの検証
- アプリケーション全体でのユーザーデータ一貫性の確保
- ユーザーAPIエンドポイントの明確な契約の提供
- TypeScript統合による型安全性の実現
- 他のユーザーブロックとのコンポジションのサポート
📋 ユーザースキーマ種類
ベースユーザースキーマ
他のスキーマの基盤として使用されるコアユーザーエンティティ構造。
ユーザー作成スキーマ
必須フィールド検証によるユーザー登録のためのスキーマ。
ユーザー更新スキーマ
オプションフィールド検証によるプロフィール更新のためのスキーマ。
ユーザークエリスキーマ
ユーザーフィルタリングとページネーションパラメータのためのスキーマ。
🔧 利用可能なユーザースキーマ
userSchema
JSONスキーマ検証のためのベースユーザースキーマ定義。
目的: アプリケーション全体でのユーザーデータ検証のためのベーススキーマ
スキーマ詳細:
- タイプ:
object
- 追加プロパティ:
false
(厳密な検証) - プロパティ:
email: string
- ユーザーメールアドレス(メールフォーマット)name?: string
- ユーザー表示名status?: string
- ユーザーアカウントステータス
使用方法:
import { schemas } from '@nodeblocks/backend-sdk';
const { userSchema } = schemas;
const baseUserSchema = userSchema({});
const validate = ajv.compile(baseUserSchema.schemas as SchemaDefinition);
const isValid = validate({
email: 'user@example.com',
name: 'John Doe',
status: 'active'
});
createUserSchema
必須フィールド検証による新しいユーザー作成のためのスキーマ。
目的: ユーザー登録リクエストの検証
スキーマ詳細:
- タイプ:
object
- 必須フィールド:
email
- オプションフィールド:
name
,status
- 追加プロパティ:
false
(厳密な検証) - コンテンツタイプ:
application/json
- リクエストボディ:
required
使用方法:
import { schemas } from '@nodeblocks/backend-sdk';
const { createUserSchema } = schemas;
const createSchema = createUserSchema({});
const validate = ajv.compile(createSchema.schemas as SchemaDefinition);
const isValid = validate({
email: 'user@example.com',
name: 'John Doe'
});
updateUserSchema
オプションフィールド検証によるユーザープロフィール更新のためのスキーマ。
目的: ユーザープロフィール更新リクエストの検証
スキーマ詳細:
- タイプ:
object
- 必須フィールド: なし(すべてオプション)
- オプションフィールド:
email
,name
,status
- 追加プロパティ:
false
(厳密な検証) - コンテンツタイプ:
application/json
- リクエストボディ:
required
使用方法:
import { schemas } from '@nodeblocks/backend-sdk';
const { updateUserSchema } = schemas;
const updateSchema = updateUserSchema({});
const validate = ajv.compile(updateSchema.schemas as SchemaDefinition);
const isValid = validate({
name: 'Updated Name',
status: 'verified'
});
getUserSchema
単一ユーザー取得のためのユーザースキーマ。
目的: 特定ユーザー取得リクエストの検証
スキーマ詳細:
- パラメータ:
userId
(パスパラメータ) - 目的: 特定ユーザー取得リクエストの検証
使用方法:
import { schemas } from '@nodeblocks/backend-sdk';
const { getUserSchema } = schemas;
const userSchema = getUserSchema({});
const validate = ajv.compile(userSchema.schemas as SchemaDefinition);
const isValid = validate({
userId: 'user123'
});
deleteUserSchema
ユーザー削除のためのユーザースキーマ。
目的: 特定ユーザー削除リクエストの検証
スキーマ詳細:
- パラメータ:
userId
(パスパラメータ) - 目的: 特定ユーザー削除リクエストの検証
使用方法:
import { schemas } from '@nodeblocks/backend-sdk';
const { deleteUserSchema } = schemas;
const userSchema = deleteUserSchema({});
const validate = ajv.compile(userSchema.schemas as SchemaDefinition);
const isValid = validate({
userId: 'user123'
});
lockUserSchema
ユーザーアカウントロックのためのユーザーロックスキーマ。
目的: 特定ユーザーアカウントのロックリクエストを検証
スキーマ詳細:
- パラメータ:
userId
(パスパラメータ) - 目的: 特定ユーザーアカウントのロックリクエストを検証
使用方法:
import { schemas } from '@nodeblocks/backend-sdk';
const { lockUserSchema } = schemas;
const userSchema = lockUserSchema({});
const validate = ajv.compile(userSchema.schemas as SchemaDefinition);
const isValid = validate({
userId: 'user123'
});
unlockUserSchema
ユーザーアカウントアンロックのためのユーザーアンロックスキーマ。
目的: 特定ユーザーアカウントのアンロックリクエストを検証
スキーマ詳細:
- パラメータ:
userId
(パスパラメータ) - 目的: 特定ユーザーアカウントのアンロックリクエストを検証
使用方法:
import { schemas } from '@nodeblocks/backend-sdk';
const { unlockUserSchema } = schemas;
const userSchema = unlockUserSchema({});
const validate = ajv.compile(userSchema.schemas as SchemaDefinition);
const isValid = validate({
userId: 'user123'
});
findUsersSchema
フィルタリングとページネーション付きユーザー検索のためのユーザー検索スキーマ。
目的: ユーザー検索とページングリクエストの検証
スキーマ詳細:
- クエリパラメータ:
email?: string
(メールでのオプションフィルタ)name?: string
(名前でのオプションフィルタ)status?: 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({
status: 'active',
page: 1,
limit: 10
});
🔗 関連ドキュメント
- ユーザードメイン概要 - ユーザードメインの概要
- ユーザーハンドラー - ユーザーハンドラー機能
- ユーザールート - ユーザールートエンドポイント