📤 レスポンススキーマ
レスポンススキーマは、Nodeblocksアプリケーション全体で標準化されたAPIレスポンス構造とエラーハンドリング用のJSONスキーマ定義を提供します。これらのスキーマは、一貫したレスポンスフォーマットとエラー報告を保証します。
🎯 概要
レスポンススキーマは以下の目的で設計されています:
- すべてのエンドポイントでのAPIレスポンスの標準化
- 一貫したエラーハンドリングのためのエラーレスポンス構造の検証
- 適切なデータフォーマットによる成功レスポンスの一貫性の保証
- エンティティ変更とユーザーアクションの監査ログのサポート
- エンティティ固有のレスポンススキーマとの合成の実現
📋 レスポンススキーマタイプ
エラーレスポンススキーマ
標準化されたエラーレスポンス構造用のスキーマ。
成功レスポンススキーマ
標準化された成功レスポンス構造用のスキーマ。
監査スキーマ
監査ログとエンティティ変更の追跡用のスキーマ。
🔧 利用可能なレスポンススキーマ
errorSchema
標準化されたAPIエラーレスポンス用のエラーレスポンススキーマ。
目的: APIエンドポイント全体でエラーレスポンス構造を検証します
スキーマ詳細:
- Type:
object - Required Fields:
code,message - Additional Properties:
false(厳密な検証) - Properties:
code: string- エラーコード識別子message: string- 人間が読めるエラーメッセージdetails?: object- 追加のエラー詳細(オプション)
使用例:
import { schemas } from '@nodeblocks/backend-sdk';
const { errorSchema } = schemas;
const validate = ajv.compile(errorSchema.schemas as SchemaDefinition);
const isValid = validate({
code: 'VALIDATION_ERROR',
message: 'Invalid input data',
details: { field: 'email', issue: 'Invalid format' }
});
successSchema
標準化されたAPI成功レスポンス用の成功レスポンススキーマ。
目的: APIエンドポイント全体で成功レスポンス構造を検証します
スキーマ詳細:
- Type:
object - Required Fields:
message - Additional Properties:
false(厳密な検証) - Properties:
message: string- 成功メッセージdata?: object- レスポンスデータ(オプション)
使用例:
import { schemas } from '@nodeblocks/backend-sdk';
const { successSchema } = schemas;
const validate = ajv.compile(successSchema.schemas as SchemaDefinition);
const isValid = validate({
message: 'User created successfully',
data: { identityId: '123', email: 'user@example.com' }
});
auditSchema
エンティティ変更とユーザーアクションを追跡するための監査ログスキーマ。
目的: システム変更の監査証跡レコードを検証します
スキーマ詳細:
- Type:
object - Required Fields:
id,entity_type,entity_id,action,user_id,created_at - Additional Properties:
false(厳密な検証) - Properties:
id: string- 監査レコードID(UUID形式)entity_type: string- 監査対象のエンティティタイプentity_id: string- 監査対象のエンティティID(UUID形式)action: "create" | "update" | "delete"- 実行されたアクションuser_id: string- アクションを実行したユーザーのID(UUID形式)created_at: string- アクションのタイムスタンプ(date-time形式)changes?: object- 行われた変更を含むオブジェクト(オプション)
使用例:
import { schemas } from '@nodeblocks/backend-sdk';
const { auditSchema } = schemas;
const validate = ajv.compile(auditSchema.schemas as SchemaDefinition);
const isValid = validate({
id: '550e8400-e29b-41d4-a716-446655440000',
entity_type: 'user',
entity_id: '550e8400-e29b-41d4-a716-446655440001',
action: 'update',
user_id: '550e8400-e29b-41d4-a716-446655440002',
created_at: '2023-01-01T00:00:00Z',
changes: { name: { from: 'John', to: 'Jane' } }
});