🛠️ ユーティリティスキーマブロック
ユーティリティスキーマブロックは、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'
}
});
🔗 関連ドキュメント
- 共通スキーマ概要 - 共通スキーマブロックの概要
- アドレススキーマ - アドレス関連スキーマ
- ページネーションスキーマ - ページネーション関連スキーマ
- レスポンススキーマ - APIレスポンス構造スキーマ