メインコンテンツまでスキップ
バージョン: 0.15.0 (最新)

📐 注文スキーマ

注文スキーマは、保存される注文の厳密な形状を定義し、注文機能のルートにリクエスト検証を関連付けます。

一覧​

エクスポートリクエストの場所契約
orderSchema該当なし再利用可能な厳密な注文オブジェクト。
createOrderSchema本文必須の JSON 注文本文。
updateOrderSchemaパス、本文注文 ID と必須の JSON 本文。
getOrderSchemaパス必須の文字列型注文 ID。
deleteOrderSchemaパス必須の文字列型注文 ID。
findOrdersSchemaクエリ任意のフィルターと範囲が制限されたページネーション。
共有ソースコンテキストを表示
const orderIdPathParameter: OpenAPIParameter = {
in: 'path',
name: 'orderId',
required: true,
schema: {
type: 'string',
},
};

詳細​

orderSchema​

定義

createOrderSchema と updateOrderSchema が展開する、再利用可能で厳密な JSON Schema の形状です。これ自体はルートに関連付けられません。保存されたドキュメントには、ソースで生成されたベースエンティティフィールドおよび MongoDB の _id が含まれることもあります。_id はこのスキーマの一部ではなく、注文応答ターミネーターによって削除されます。

場所フィールド型必須制約
本文currencystringいいえ形式・列挙値なし。
本文identityIdstringいいえUUID 形式。
本文itemsarrayいいえ各項目は次の厳密なネストオブジェクトです。
本文 / items[]pricenumberはい最小値 0。項目に追加プロパティは不可。
本文 / items[]productIdstringはいUUID 形式。
本文 / items[]quantitynumberはい最小値 1。
本文organizationIdstringいいえUUID 形式。
本文statusstringいいえ列挙値なし。
本文subtotalnumberいいえ最小値 0。
本文taxnumberいいえ最小値 0。
本文totalnumberいいえ最小値 0。

外側のオブジェクトおよび各 items[] オブジェクトには additionalProperties: false が設定されています。

使用するルート: createOrderRoute および updateOrderRoute を通じて間接的に使用します。使用する機能: createOrderFeature および updateOrderFeature を通じて間接的に使用します。

完全なソースを表示
export const orderSchema: SchemaDefinition = {
$schema: 'http://json-schema.org/draft-07/schema#',
additionalProperties: false,
properties: {
currency: {type: 'string'},
identityId: {format: 'uuid', type: 'string'},
items: {
items: {
additionalProperties: false,
properties: {
price: {minimum: 0, type: 'number'},
productId: {format: 'uuid', type: 'string'},
quantity: {minimum: 1, type: 'number'},
},
required: ['productId', 'quantity', 'price'],
type: 'object',
},
type: 'array',
},
organizationId: {format: 'uuid', type: 'string'},
status: {type: 'string'},
subtotal: {minimum: 0, type: 'number'},
tax: {minimum: 0, type: 'number'},
total: {minimum: 0, type: 'number'},
},
type: 'object',
};

createOrderSchema​

定義

createOrderFeature によって合成される createOrderRoute 用の必須 application/json 本文を検証します。orderSchema を展開するため、本文は厳密です。

場所フィールド型必須制約
本文identityIdstringはいUUID 形式。
本文itemsarrayはい厳密な項目オブジェクト。各項目には UUID の productId、1 以上の数値 quantity、0 以上の数値 price が必要です。
本文totalnumberはい最小値 0。
本文currency、organizationId、status、subtotal、taxorderSchema と同じいいえ展開されるスキーマが正確な形式と最小値を定義します。

使用するルート: createOrderRoute。使用する機能: createOrderFeature。

完全なソースを表示
export const createOrderSchema = withSchema({
requestBody: {
content: {
'application/json': {
schema: {
...orderSchema,
required: ['identityId', 'items', 'total'],
},
},
},
required: true,
},
});

updateOrderSchema​

定義

updateOrderFeature によって合成される updateOrderRoute を検証します。JSON 本文は必須ですが、展開されるスキーマの required: [] により必須プロパティはありません。実行時の updateOrder はさらに空のオブジェクトを拒否します。

場所フィールド型必須制約
パスorderIdstringはい形式・パターンなし。
本文すべての orderSchema フィールド再利用可能なスキーマと同じいいえapplication/json。厳密な外側/ネストオブジェクト。本文のプロパティはスキーマ上必須ではありません。

使用するルート: updateOrderRoute。使用する機能: updateOrderFeature。

完全なソースを表示
export const updateOrderSchema = withSchema({
parameters: [{...orderIdPathParameter}],
requestBody: {
content: {
'application/json': {
schema: {
...orderSchema,
required: [],
},
},
},
required: true,
},
});

getOrderSchema​

定義

getOrderFeature によって合成される getOrderRoute のパスを検証します。クエリおよびリクエスト本文はありません。

場所フィールド型必須制約
パスorderIdstringはい形式・パターンなし。

使用するルート: getOrderRoute。使用する機能: getOrderFeature。

完全なソースを表示
export const getOrderSchema = withSchema({
parameters: [{...orderIdPathParameter}],
});

deleteOrderSchema​

定義

deleteOrderFeature によって合成される deleteOrderRoute のパスを検証します。クエリおよびリクエスト本文はありません。

場所フィールド型必須制約
パスorderIdstringはい形式・パターンなし。

使用するルート: deleteOrderRoute。使用する機能: deleteOrderFeature。

完全なソースを表示
export const deleteOrderSchema = withSchema({
parameters: [{...orderIdPathParameter}],
});

findOrdersSchema​

定義

findOrdersFeature によって合成される findOrdersRoute のクエリ入力を検証します。パスパラメーターと本文はありません。withPagination は、残りのクエリが Mongo フィルターとして findOrders に渡される前に、page と limit を消費します。

場所フィールド型必須制約
クエリcurrencystringいいえ形式・列挙値なし。
クエリorganizationIdstringいいえ形式・パターンなし。
クエリstatusstringいいえ列挙値なし。
クエリsubtotalnumberいいえ最小値 0。
クエリtaxnumberいいえ最小値 0。
クエリtotalnumberいいえ最小値 0。
クエリidentityIdstringいいえ形式・パターンなし。
クエリpageintegerいいえ共有ページネーション。最小値 1、最大値 1000。
クエリlimitintegerいいえ共有ページネーション。最小値 1、最大値 50。

使用するルート: findOrdersRoute。使用する機能: findOrdersFeature。

完全なソースを表示
export const findOrdersSchema = withSchema({
parameters: [
{
in: 'query',
name: 'currency',
required: false,
schema: {
type: 'string',
},
},
{
in: 'query',
name: 'organizationId',
required: false,
schema: {
type: 'string',
},
},
{
in: 'query',
name: 'status',
required: false,
schema: {
type: 'string',
},
},
{
in: 'query',
name: 'subtotal',
required: false,
schema: {
minimum: 0,
type: 'number',
},
},
{
in: 'query',
name: 'tax',
required: false,
schema: {
minimum: 0,
type: 'number',
},
},
{
in: 'query',
name: 'total',
required: false,
schema: {
minimum: 0,
type: 'number',
},
},
{
in: 'query',
name: 'identityId',
required: false,
schema: {
type: 'string',
},
},
...paginationQueryParametersSchema,
],
});