📐 Location schemas
Location schemas は、厳格な location ボディ、location ID パス、および公開リストのページネーションを検証する。
インベントリ
| エクスポート | リクエスト場所 | 契約内容 |
|---|---|---|
locationSchema | N/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/A | code | string | いいえ | Location コード。 |
| N/A | name | string | いいえ | Location 名。 |
| N/A | type | string | いいえ | 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。
| 場所 | フィールド | 型 | 必須 | 制約 |
|---|---|---|---|---|
| ボディ | code | string | はい | application/json; location コード。 |
| ボディ | name | string | はい | application/json; location 名。 |
| ボディ | type | string | はい | application/json; location タイプ。 |
| ボディ | parentId | string | いいえ | 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。
| 場所 | フィールド | 型 | 必須 | 制約 |
|---|---|---|---|---|
| パス | locationId | string | はい | フォーマットまたはパターンなし。 |
完全なソースを表示
export const getLocationSchema = withSchema({
parameters: [{...locationIdPathParameter}],
});
updateLocationSchema
定義
パス ID と application/json ボディを必須とします。基本フィールドはすべてオプション (required: []) です。つまり {} はスキーマ-valid です;parentId は更新では許可されません。ルートで使用: updateLocationRoute。機能で使用: updateLocationFeature。
| 場所 | フィールド | 型 | 必須 | 制約 |
|---|---|---|---|---|
| パス | locationId | string | はい | フォーマットまたはパターンなし。 |
| ボディ | code | string | いいえ | application/json; 厳格な基本フィールド。 |
| ボディ | name | string | いいえ | application/json; 厳格な基本フィールド。 |
| ボディ | type | string | いいえ | application/json; 厳格な基本フィールド。 |
完全なソースを表示
export const updateLocationSchema = withSchema({
parameters: [{...locationIdPathParameter}],
requestBody: {
content: {
'application/json': {
schema: {
...locationSchema,
required: [],
},
},
},
required: true,
},
});
deleteLocationSchema
定義
location パス ID を検証します。ルートで使用: deleteLocationRoute。機能で使用: deleteLocationFeature。
| 場所 | フィールド | 型 | 必須 | 制約 |
|---|---|---|---|---|
| パス | locationId | string | はい | フォーマットまたはパターンなし。 |
完全なソースを表示
export const deleteLocationSchema = withSchema({
parameters: [{...locationIdPathParameter}],
});
findLocationsSchema
定義
共有ページネーションクエリパラメータをスプレッドします;location フィルターは定義しません。ルートで使用: findLocationsRoute。機能で使用: findLocationsFeature。
| 場所 | フィールド | 型 | 必須 | 制約 |
|---|---|---|---|---|
| クエリ | page | integer | いいえ | 1–1000。 |
| クエリ | limit | integer | いいえ | 1–50。 |
完全なソースを表示
export const findLocationsSchema = withSchema({
parameters: [...paginationQueryParametersSchema],
});