メインコンテンツまでスキップ
バージョン: 0.5.0 (最新)

🔍 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
});

🔗 関連ドキュメント