メインコンテンツまでスキップ
バージョン: 0.14.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

定義

createOrderSchemaupdateOrderSchema が展開する、再利用可能で厳密な 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 の productId1 以上の数値 quantity0 以上の数値 price が必要です。
本文totalnumberはい最小値 0
本文currencyorganizationIdstatussubtotaltaxorderSchema と同じいいえ展開されるスキーマが正確な形式と最小値を定義します。

使用するルート: 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 に渡される前に、pagelimit を消費します。

場所フィールド必須制約
クエリ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,
],
});