メインコンテンツまでスキップ
バージョン: 🚧 Canary

📐 Location schemas

Location schemas は、厳格な location ボディ、location ID パス、および公開リストのページネーションを検証する。

インベントリ

エクスポートリクエスト場所契約内容
locationSchemaN/A厳格な再利用可能な基本オブジェクト。
createLocationSchemaボディ必須の厳格な作成ボディ。
getLocationSchemaパス必須の location ID。
updateLocationSchemaパス、ボディ必須の ID および厳格な部分ボディ。
deleteLocationSchemaパス必須の location ID。
findLocationsSchemaクエリ共有ページネーションのみ。
共有パスパラメータ定義
const locationIdPathParameter: OpenAPIParameter = {
in: 'path',
name: 'locationId',
required: true,
schema: {
type: 'string',
},
};

findLocationsSchema は、共有 paginationQueryParametersSchema をスプレッドする唯一の Location スキーマです。

共有ページネーションクエリ定義
export const paginationQueryParametersSchema: OpenAPIParameter[] = [
{
in: 'query',
name: 'page',
required: false,
schema: {
maximum: 1000,
minimum: 1,
type: 'integer',
},
},
{
in: 'query',
name: 'limit',
required: false,
schema: {
maximum: 50,
minimum: 1,
type: 'integer',
},
},
];

詳細

locationSchema

定義

再利用可能な厳格な基本入力オブジェクト (additionalProperties: false)。保存されるエンティティではありません:作成により階層/基本フィールドが追加されます。createLocationSchema および updateLocationSchema によってスプレッドされます;ルートや機能は直接composeしません。

場所フィールド必須制約
N/AcodestringいいえLocation コード。
N/AnamestringいいえLocation 名。
N/AtypestringいいえLocation タイプ。
完全なソースを表示
export const locationSchema: SchemaDefinition = {
$schema: 'http://json-schema.org/draft-07/schema#',
additionalProperties: false,
properties: {
code: {type: 'string'},
name: {type: 'string'},
type: {type: 'string'},
},
type: 'object',
};

createLocationSchema

定義

locationSchema をスプレッドする必須の OpenAPI application/json ボディ、厳格性を保持し、parentId を追加し、3つの基本フィールドを必須とします。ルートで使用: createLocationRoute機能で使用: createLocationFeature

場所フィールド必須制約
ボディcodestringはいapplication/json; location コード。
ボディnamestringはいapplication/json; location 名。
ボディtypestringはいapplication/json; location タイプ。
ボディparentIdstringいいえapplication/json; 提供された場合、既存の親 ID。
完全なソースを表示
export const createLocationSchema = withSchema({
requestBody: {
content: {
'application/json': {
schema: {
...locationSchema,
properties: {
...locationSchema.properties,
parentId: {type: 'string'},
},
required: ['name', 'code', 'type'],
},
},
},
required: true,
},
});

getLocationSchema

定義

location パス ID を検証します。ルートで使用: getLocationRoute機能で使用: getLocationFeature

場所フィールド必須制約
パスlocationIdstringはいフォーマットまたはパターンなし。
完全なソースを表示
export const getLocationSchema = withSchema({
parameters: [{...locationIdPathParameter}],
});

updateLocationSchema

定義

パス ID と application/json ボディを必須とします。基本フィールドはすべてオプション (required: []) です。つまり {} はスキーマ-valid です;parentId は更新では許可されません。ルートで使用: updateLocationRoute機能で使用: updateLocationFeature

場所フィールド必須制約
パスlocationIdstringはいフォーマットまたはパターンなし。
ボディcodestringいいえapplication/json; 厳格な基本フィールド。
ボディnamestringいいえapplication/json; 厳格な基本フィールド。
ボディtypestringいいえapplication/json; 厳格な基本フィールド。
完全なソースを表示
export const updateLocationSchema = withSchema({
parameters: [{...locationIdPathParameter}],
requestBody: {
content: {
'application/json': {
schema: {
...locationSchema,
required: [],
},
},
},
required: true,
},
});

deleteLocationSchema

定義

location パス ID を検証します。ルートで使用: deleteLocationRoute機能で使用: deleteLocationFeature

場所フィールド必須制約
パスlocationIdstringはいフォーマットまたはパターンなし。
完全なソースを表示
export const deleteLocationSchema = withSchema({
parameters: [{...locationIdPathParameter}],
});

findLocationsSchema

定義

共有ページネーションクエリパラメータをスプレッドします;location フィルターは定義しません。ルートで使用: findLocationsRoute機能で使用: findLocationsFeature

場所フィールド必須制約
クエリpageintegerいいえ11000
クエリlimitintegerいいえ150
完全なソースを表示
export const findLocationsSchema = withSchema({
parameters: [...paginationQueryParametersSchema],
});