🔍 Order スキーマブロック
Order スキーマブロックは、NodeBlocks アプリケーションの注文データ検証のための JSON Schema 定義を提供します。これらのスキーマはデータ整合性を確保し、注文関連の API エンドポイントのための明確な契約を提供します。
🎯 概要
Order スキーマブロックは次のことを目的として設計されています:
- 処理前に注文データを検証する
- ラインアイテムと価格設定を使用した複雑な注文構造をサポートする
- 複数の通貨と税計算を処理する
- さまざまなライフサイクル状態を通じて注文ステータスを追跡する
- 注文検索とフィルタリング機能を有効にする
- 組織とユーザーの関連付けをサポートする
📋 Order スキーマタイプ
ベース注文スキーマ
他のスキーマの基礎として使用されるコア注文構造。
注文作成スキーマ
必須フィールド検証を使用した注文作成のためのスキーマ。
注文更新スキーマ
オプションのフィールド検証を使用した注文変更のためのスキーマ。
注文クエリスクーマ
注文フィルタリングとページネーションパラメーターのためのスキーマ。
🔧 利用可能な Order スキーマ
orderSchema
注文データの構造を定義するベース注文スキーマ。
目的: ラインアイテムを使用した注文データの構造を定義します
Schema Details:
- Type:
object
- Required Fields: なし(ベーススキーマ)
- Additional Properties:
false
(厳密な検証) - Properties:
currency?: string
- 注文通貨items?: Array<{productId: string, quantity: number, price: number}>
- 注文ラインアイテムorganizationId?: string
- 組織 ID(UUID 形式)status?: string
- 注文ステータスsubtotal?: number
- 注文小計(最小値 0)tax?: number
- 税額(最小値 0)total?: number
- 合計金額(最小値 0)identityId?: string
- アイデンティティ ID(UUID 形式)
使用法:
import { schemas } from '@nodeblocks/backend-sdk';
const { orderSchema } = schemas;
const validate = ajv.compile(orderSchema as SchemaDefinition);
const isValid = validate({
currency: 'USD',
items: [{ productId: '123e4567-e89b-12d3-a456-426614174000', quantity: 2, price: 29.99 }],
total: 59.98
});
createOrderSchema
新規注文のための必須フィールドを使用した注文作成スキーマ。
目的: 作成時の注文データを検証します
Schema Details:
- Type:
object
- Required Fields:
identityId
,items
,total
- Optional Fields:
currency
,organizationId
,status
,subtotal
,tax
- Additional Properties:
false
(厳密な検証) - Content-Type:
application/json
- Request Body:
required
使用法:
import { schemas } from '@nodeblocks/backend-sdk';
const { createOrderSchema } = schemas;
const orderSchema = createOrderSchema({});
const validate = ajv.compile(orderSchema.schemas as SchemaDefinition);
const isValid = validate({
items: [{ productId: '123e4567-e89b-12d3-a456-426614174000', quantity: 2, price: 29.99 }],
total: 59.98,
currency: 'USD'
});
updateOrderSchema
注文変更のためのオプションのフィールドを使用した注文更新スキーマ。
目的: 部分的な注文データ更新を検証します
Schema Details:
- Type:
object
- Required Fields: なし(すべてのフィールドがオプション)
- Additional Properties:
false
(厳密な検証) - Content-Type:
application/json
- Parameters:
orderId
(パスパラメーター) - Request Body:
required
使用法:
import { schemas } from '@nodeblocks/backend-sdk';
const { updateOrderSchema } = schemas;
const orderSchema = updateOrderSchema({});
const validate = ajv.compile(orderSchema.schemas as SchemaDefinition);
const isValid = validate({
status: 'shipped',
total: 65.98
});
getOrderSchema
単一の注文を取得するための注文取得スキーマ。
目的: 特定の注文を取得するためのリクエストを検証します
Schema Details:
- Parameters:
orderId
(パスパラメーター) - Purpose: 特定の注文を取得するためのリクエストを検証します
使用法:
import { schemas } from '@nodeblocks/backend-sdk';
const { getOrderSchema } = schemas;
const orderSchema = getOrderSchema({});
const validate = ajv.compile(orderSchema.schemas as SchemaDefinition);
const isValid = validate({
orderId: 'order123'
});
deleteOrderSchema
注文を削除するための注文削除スキーマ。
目的: 特定の注文を削除するためのリクエストを検証します
Schema Details:
- Parameters:
orderId
(パスパラメーター) - Purpose: 特定の注文を削除するためのリクエストを検証します
使用法:
import { schemas } from '@nodeblocks/backend-sdk';
const { deleteOrderSchema } = schemas;
const orderSchema = deleteOrderSchema({});
const validate = ajv.compile(orderSchema.schemas as SchemaDefinition);
const isValid = validate({
orderId: 'order123'
});
findOrdersSchema
フィルタリングとページネーションを使用して注文を検索するための注文検索スキーマ。
目的: 注文の検索とページネーションのためのリクエストを検証します
Schema Details:
- Query Parameters:
currency?: string
- 通貨でフィルターorganizationId?: string
- 組織でフィルターstatus?: string
- ステータスでフィルターsubtotal?: number
- 小計でフィルター(最小値 0)tax?: number
- 税額でフィルター(最小値 0)total?: number
- 合計金額でフィルター(最小値 0)identityId?: string
- アイデンティティでフィルターpage?: number
- ページネーションページ番号limit?: number
- ページネーション制限
- Purpose: 注文の検索とページネーションのためのリクエストを検証します
使用法:
import { schemas } from '@nodeblocks/backend-sdk';
const { findOrdersSchema } = schemas;
const ordersSchema = findOrdersSchema({});
const validate = ajv.compile(ordersSchema.schemas as SchemaDefinition);
const isValid = validate({
status: 'pending',
currency: 'USD',
page: 1,
limit: 10
});
🔗 関連ドキュメント
- Order Domain Overview - 注文ドメインの概要