🔍 属性スキーマブロック
属性スキーマブロックは、Nodeblocks アプリケーションにおける属性セットのデータ検証のための JSON Schema 定義を提供します。これらのスキーマはデータの完全性を保証し、属性関連の API エンドポイントに対して明確な契約を提供します。
🎯 概要
属性スキーマブロックは次のことを目的として設計されています:
- 処理前に属性セットデータを検証する
- 柔軟なデータのためにキーと値のペア構造をサポートする
- 属性操作全体でデータの一貫性を確保する
- 属性の検索とフィルタリング機能を有効にする
- 大規模な属性コレクションのページネーションをサポートする
📋 属性スキーマの種類
基本属性スキーマ
他のスキーマの土台として使用される中核となる属性セット構造。
属性作成スキーマ
必須フィールドの検証を伴う属性セット作成用スキーマ。
属性更新スキーマ
任意フィールドの検証を伴う属性セット変更用スキーマ。
属性クエリスキーマ
属性のフィルタリングおよびページネーション用パラメータのスキーマ。
🔧 利用可能な属性スキーマ
attributesSchema
属性セットデータの構造を定義する基本スキーマ。
目的: キーと値のペアを持つ属性セットの構造を定義します
スキーマ詳細:
- Type:
object
- 必須フィールド: なし(ベーススキーマ)
- 追加プロパティ:
false
(厳格な検証) - プロパティ:
name?: string
- 属性セット名items?: Array<{key: string, value: string}>
- キーと値のペア(最小 1 項目)
使用例:
import { schemas } from '@nodeblocks/backend-sdk';
const { attributesSchema } = schemas;
const validate = ajv.compile(attributesSchema as SchemaDefinition);
const isValid = validate({
name: 'Product Attributes',
items: [{ key: 'color', value: 'red' }, { key: 'size', value: 'large' }]
});
createAttributesSchema
新しい属性セットのための必須フィールドを備えた属性作成スキーマ。
目的: 作成時に属性セットデータを検証します
スキーマ詳細:
- Type:
object
- 必須フィールド:
name
,items
- 追加プロパティ:
false
(厳格な検証) - Content-Type:
application/json
- Request Body:
required
使用例:
import { schemas } from '@nodeblocks/backend-sdk';
const { createAttributesSchema } = schemas;
const attributesSchema = createAttributesSchema({});
const validate = ajv.compile(attributesSchema.schemas as SchemaDefinition);
const isValid = validate({
name: 'Product Attributes',
items: [{ key: 'color', value: 'red' }, { key: 'size', value: 'large' }]
});
updateAttributesSchema
属性セット名を変更するための属性更新スキーマ。
目的: 属性セット名の部分更新を検証します
スキーマ詳細:
- Type:
object
- 必須フィールド: なし
- 追加プロパティ:
false
(厳格な検証) - Content-Type:
application/json
- Parameters:
attributeId
(パスパラメータ) - プロパティ:
name?: string
- 更新後の属性セット名
使用例:
import { schemas } from '@nodeblocks/backend-sdk';
const { updateAttributesSchema } = schemas;
const attributesSchema = updateAttributesSchema({});
const validate = ajv.compile(attributesSchema.schemas as SchemaDefinition);
const isValid = validate({ name: 'Updated Product Attributes' });
getAttributeSchema
単一の属性セットを取得するための属性取得スキーマ。
目的: 特定の属性セットを取得するリクエストを検証します
スキーマ詳細:
- Parameters:
attributeId
(パスパラメータ) - Purpose: 特定の属性セットを取得するリクエストを検証します
使用例:
import { schemas } from '@nodeblocks/backend-sdk';
const { getAttributeSchema } = schemas;
const attributeSchema = getAttributeSchema({});
const validate = ajv.compile(attributeSchema.schemas as SchemaDefinition);
const isValid = validate({
attributeId: 'attr123'
});
deleteAttributeSchema
属性セットを削除するための属性削除スキーマ。
目的: 特定の属性セットを削除するリクエストを検証します
スキーマ詳細:
- Parameters:
attributeId
(パスパラメータ) - Purpose: 特定の属性セットを削除するリクエストを検証します
使用例:
import { schemas } from '@nodeblocks/backend-sdk';
const { deleteAttributeSchema } = schemas;
const attributeSchema = deleteAttributeSchema({});
const validate = ajv.compile(attributeSchema.schemas as SchemaDefinition);
const isValid = validate({
attributeId: 'attr123'
});
findAttributesSchema
フィルタリングとページネーションを伴って属性セットを検索するための属性検索スキーマ。
目的: 属性セットの検索およびページネーション用リクエストを検証します
スキーマ詳細:
- クエリパラメータ:
name?: string
(名前での任意のフィルタ)page?: number
(ページネーション)limit?: number
(ページネーション)
- Purpose: 属性セットの検索およびページネーション用リクエストを検証します
使用例:
import { schemas } from '@nodeblocks/backend-sdk';
const { findAttributesSchema } = schemas;
const attributesSchema = findAttributesSchema({});
const validate = ajv.compile(attributesSchema.schemas as SchemaDefinition);
const isValid = validate({
name: 'Product',
page: 1,
limit: 10
});
🔗 関連ドキュメント
- 属性ドメインの概要 - 属性ドメインの概要