メインコンテンツまでスキップ
バージョン: 0.4.2

🛠️ ユーティリティスキーマブロック

ユーティリティスキーマブロックは、Nodeblocksアプリケーション全体でファイルアップロードや連絡先情報検証などの共通ユーティリティ操作のためのJSONスキーマ定義を提供します。これらのスキーマは、共通ユーティリティ操作の一貫した検証を確保します。


🎯 概要

ユーティリティスキーマブロックは以下を目的として設計されています:

  • 適切な制約によるファイルアップロードメタデータの検証
  • エンティティ全体での連絡先情報一貫性の確保
  • 標準化された検証による共通ユーティリティ操作のサポート
  • 共通データ構造のための再利用可能な検証パターンの提供
  • エンティティ固有ユーティリティスキーマとのコンポジションの実現

📋 ユーティリティスキーマ種類

ファイルアップロードスキーマ

ファイルアップロードメタデータと検証のためのスキーマ。

連絡先情報スキーマ

連絡先情報検証のためのスキーマ。


🔧 利用可能なユーティリティスキーマ

fileSchema

アップロードされたファイルメタデータ検証のためのファイルアップロードスキーマ。

目的: ファイルアップロードメタデータとプロパティを検証

スキーマ詳細:

  • タイプ: object
  • 必須フィールド: id, filename, mime_type, size, url, created_at
  • 追加プロパティ: false(厳密な検証)
  • プロパティ:
    • id: string - ファイルID(UUIDフォーマット)
    • filename: string - 元のファイル名
    • mime_type: string - ファイルのMIMEタイプ
    • size: number - ファイルサイズ(バイト)(最小: 0)
    • url: string - ファイルURL(URIフォーマット)
    • created_at: string - ファイル作成タイムスタンプ(date-timeフォーマット)

使用方法:

import { schemas } from '@nodeblocks/backend-sdk';

const { fileSchema } = schemas;

const validate = ajv.compile(fileSchema);
const isValid = validate({
id: '550e8400-e29b-41d4-a716-446655440000',
filename: 'document.pdf',
mime_type: 'application/pdf',
size: 1024000,
url: 'https://example.com/files/document.pdf',
created_at: '2023-01-01T00:00:00Z'
});

contactSchema

個人または組織の連絡先詳細のための連絡先情報スキーマ。

目的: 必須メール付き連絡先情報を検証

スキーマ詳細:

  • タイプ: object
  • 必須フィールド: email
  • 追加プロパティ: false(厳密な検証)
  • プロパティ:
    • email: string - メールアドレス(メールフォーマット)
    • phone?: string - 電話番号(オプション)
    • address?: object - アドレスオブジェクト(オプション)

使用方法:

import { schemas } from '@nodeblocks/backend-sdk';

const { contactSchema } = schemas;

const validate = ajv.compile(contactSchema);
const isValid = validate({
email: 'contact@example.com',
phone: '+1-555-123-4567',
address: {
street: '123 Main St',
city: 'New York',
country: 'USA'
}
});

🔗 関連ドキュメント