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

🛠️ ユーティリティスキーマ

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


🎯 概要

ユーティリティスキーマは以下の目的で設計されています:

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

📋 ユーティリティスキーマタイプ

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

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

連絡先情報スキーマ

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


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

fileSchema

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

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

スキーマ詳細:

  • Type: object
  • Required Fields: id, filename, mime_type, size, url, created_at
  • Additional Properties: false(厳密な検証)
  • Properties:
    • 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.schemas as SchemaDefinition);
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

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

目的: 必須のメールアドレスを含む連絡先情報を検証します

スキーマ詳細:

  • Type: object
  • Required Fields: email
  • Additional Properties: false(厳密な検証)
  • Properties:
    • email: string - メールアドレス(email形式)
    • phone?: string - 電話番号(オプション)
    • address?: object - 住所オブジェクト(オプション)

使用例:

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

const { contactSchema } = schemas;

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