🔍 プロフィールスキーマ
プロフィールスキーマは、NodeBlocksアプリケーションでプロフィール関係データ検証のためのJSON Schema定義を提供します。これらのスキーマはデータ整合性を確保し、プロフィール関連APIエンドポイントの明確なコントラクトを提供します。
🎯 概要
プロフィールスキーマは以下の目的で設計されています:
- プロフィール関係データの検証 - 処理前
- プロフィールデータの一貫性の確保 - アプリケーション全体で
- 明確なコントラクトの提供 - プロフィールAPIエンドポイント用
- 型安全性の有効化 - TypeScript統合を含む
- 他のプロフィールブロックとの合成のサポート
- ソーシャル関係の処理 - フォロー、組織フォロー、製品いいねを含む
📋 プロフィールスキーマタイプ
プロフィールフォロースキーマ
プロフィール間フォロー関係操作用のスキーマ。
組織フォロースキーマ
プロフィールと組織間フォロー関係操作用のスキーマ。
製品いいねスキーマ
プロフィールと製品間いいね関係操作用のスキーマ。
プロフィールフォロワースキーマ
ページネーション付きプロフィールフォロワー取得用のスキーマ。
🔧 利用可能なプロフィールスキーマ
createProfileFollowSchema
パスパラメータ検証を含むプロフィールフォロー作成スキーマ。
目的: 新しいプロフィールフォロー関係を作成するリクエストを検証し、両方のプロフィールIDがパスパラメータとして提供されることを確保します。
スキーマ詳細:
- パラメータ:
profileId(パスパラメータ、必須)、followProfileId(パスパラメータ、必須) - Request Body: 不要(空のボディ)
- Content-Type: N/A(ボディ検証なし)
使用例:
import { schemas } from '@nodeblocks/backend-sdk';
const { createProfileFollowSchema } = schemas;
const schema = createProfileFollowSchema({});
const validate = ajv.compile(schema.schemas as SchemaDefinition);
const isValid = validate({
parameters: [
{ in: 'path', name: 'profileId', value: 'user-123' },
{ in: 'path', name: 'followProfileId', value: 'user-456' }
]
});
deleteProfileFollowSchema
パスパラメータ検証を含むプロフィールフォロー削除スキーマ。
目的: プロフィールフォロー関係を削除するリクエスト(フォロー解除)を検証し、両方のプロフィールIDがパスパラメータとして提供されることを確保します。
スキーマ詳細:
- パラメータ:
profileId(パスパラメータ、必須)、followProfileId(パスパラメータ、必須) - Request Body: 不要(空のボディ)
- Content-Type: N/A(ボディ検証なし)
使用例:
import { schemas } from '@nodeblocks/backend-sdk';
const { deleteProfileFollowSchema } = schemas;
const schema = deleteProfileFollowSchema({});
const validate = ajv.compile(schema.schemas as SchemaDefinition);
const isValid = validate({
parameters: [
{ in: 'path', name: 'profileId', value: 'user-123' },
{ in: 'path', name: 'followProfileId', value: 'user-456' }
]
});
getProfileFollowersSchema
パスパラメータ検証を含むプロフィールフォロワー取得スキーマ。
目的: プロフィールフォロワーリストを取得するリクエストを検証し、プロフィールIDがパスパラメータとして提供されることを確保します。
スキーマ詳細:
- パラメータ:
profileId(パスパラメータ、必須) - Query Parameters:
page(オプション)、limit(オプション) - Request Body: 不要(空のボディ)
- Content-Type: N/A(ボディ検証なし)
使用例:
import { schemas } from '@nodeblocks/backend-sdk';
const { getProfileFollowersSchema } = schemas;
const schema = getProfileFollowersSchema({});
const validate = ajv.compile(schema.schemas as SchemaDefinition);
const isValid = validate({
parameters: [{ in: 'path', name: 'profileId', value: 'user-123' }]
});
createOrganizationFollowSchema
パスパラメータ検証を含む組織フォロー作成スキーマ。
目的: 組織フォロー関係を作成するリクエストを検証し、プロフィールIDと組織IDの両方がパスパラメータとして提供されることを確保します。
スキーマ詳細:
- パラメータ:
profileId(パスパラメータ、必須)、followOrganizationId(パスパラメータ、必須) - Request Body: 不要(空のボディ)
- Content-Type: N/A(ボディ検証なし)
使用例:
import { schemas } from '@nodeblocks/backend-sdk';
const { createOrganizationFollowSchema } = schemas;
const schema = createOrganizationFollowSchema({});
const validate = ajv.compile(schema.schemas as SchemaDefinition);
const isValid = validate({
parameters: [
{ in: 'path', name: 'profileId', value: 'user-123' },
{ in: 'path', name: 'followOrganizationId', value: 'org-456' }
]
});
deleteOrganizationFollowSchema
パスパラメータ検証を含む組織フォロー削除スキーマ。
目的: 組織フォロー関係を削除するリクエストを検証し、プロフィールIDと組織IDの両方がパスパラメータとして提供されることを確保します。
スキーマ詳細:
- パラメータ:
profileId(パスパラメータ、必須)、followOrganizationId(パスパラメータ、必須) - Request Body: 不要(空のボディ)
- Content-Type: N/A(ボディ検証なし)
使用例:
import { schemas } from '@nodeblocks/backend-sdk';
const { deleteOrganizationFollowSchema } = schemas;
const schema = deleteOrganizationFollowSchema({});
const validate = ajv.compile(schema.schemas as SchemaDefinition);
const isValid = validate({
parameters: [
{ in: 'path', name: 'profileId', value: 'user-123' },
{ in: 'path', name: 'followOrganizationId', value: 'org-456' }
]
});
createProductLikeSchema
パスパラメータ検証を含む製品いいね作成スキーマ。
目的: 製品いいね関係を作成するリクエストを検証し、プロフィールIDと製品IDの両方がパスパラメータとして提供されることを確保します。
スキーマ詳細:
- パラメータ:
profileId(パスパラメータ、必須)、likeProductId(パスパラメータ、必須) - Request Body: 不要(空のボディ)
- Content-Type: N/A(ボディ検証なし)
使用例:
import { schemas } from '@nodeblocks/backend-sdk';
const { createProductLikeSchema } = schemas;
const schema = createProductLikeSchema({});
const validate = ajv.compile(schema.schemas as SchemaDefinition);
const isValid = validate({
parameters: [
{ in: 'path', name: 'profileId', value: 'user-123' },
{ in: 'path', name: 'likeProductId', value: 'prod-789' }
]
});
deleteProductLikeSchema
いいね解除操作用のパスパラメータ検証を含む製品いいね削除スキーマ。
目的: 製品いいね関係を削除するリクエストを検証し、プロフィールIDと製品IDの両方がパスパラメータとして提供されることを確保します。
スキーマ詳細:
- パラメータ:
profileId(パスパラメータ、必須)、likeProductId(パスパラメータ、必須) - Request Body: 不要(空のボディ)
- Content-Type: N/A(ボディ検証なし)
使用例:
import { schemas } from '@nodeblocks/backend-sdk';
const { deleteProductLikeSchema } = schemas;
const schema = deleteProductLikeSchema({});
const validate = ajv.compile(schema.schemas as SchemaDefinition);
const isValid = validate({
parameters: [
{ in: 'path', name: 'profileId', value: 'user-123' },
{ in: 'path', name: 'likeProductId', value: 'prod-789' }
]
});
🔗 関連ドキュメント
- プロフィールブロック - プロフィールビジネスロジック関数
- プロフィールルート - HTTPエンドポイント定義