🛠️ ユーティリティスキーマ
ユーティリティスキーマは、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'
}
});