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

🔍 プロフィールスキーマ

プロフィールスキーマは、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' }
]
});

🔗 関連ドキュメント