如何在没有数组的情况下拥有多个无限对象 - Open API / Swagger
How to have multiple infinite objects without an array - Open API / Swagger
我正在尝试为 JSON 的以下片段设置一个开放的 api 规范:
"test1": {
"1739573957": {
"tester1": 123,
"tester2": "Company"
},
"64903826718": {
"tester1": 123,
"tester2": "Company"
}
"5902849189": {
"tester1": 123,
"tester2": "Company"
}
}
test1 中的对象具有随机化的 guid,并且以通常是数组的方式列出,但实际上不是。测试 1 中可能有无数个对象。有人知道如何设置吗?
您正在寻找 free-form-object:
A free-form object (arbitrary property/value pairs) is defined as:
type: object
This is equivalent to
type: object
additionalProperties: true
and
type: object
additionalProperties: {}
但是,如果您可以更改 API,我强烈建议将其更改为测试数组或对象定义的任何内容。将 id 作为 属性 放入此对象中,您就可以开始了。这使得为其创建 DTO 变得容易得多。
test1
是一个字符串到对象的字典,可以定义如下(假设 OpenAPI 3):
components:
schemas:
Tester: # Or however you would name the nested objects
tester1:
type: integer
example: 123
tester2:
type: string
example: Company
...
test1:
type: object
additionalProperties:
$ref: '#/components/schemas/Tester'
# Optional example for the `test1` property
example:
'1739573957':
tester1: 123
tester2: Company
'64903826718':
tester1: 123
tester2: Company
The objects inside test1 have randomized guids
在OpenAPI 3.1中,您可以使用代替additionalProperties
来定义test1
中的键是数字字符串。早期的 OpenAPI 版本无法定义字典键的格式。
# openapi: 3.1.0
test1:
type: object
patternProperties: # <-----
'^\d+$': # <-----
$ref: '#/components/schemas/Tester'
我正在尝试为 JSON 的以下片段设置一个开放的 api 规范:
"test1": {
"1739573957": {
"tester1": 123,
"tester2": "Company"
},
"64903826718": {
"tester1": 123,
"tester2": "Company"
}
"5902849189": {
"tester1": 123,
"tester2": "Company"
}
}
test1 中的对象具有随机化的 guid,并且以通常是数组的方式列出,但实际上不是。测试 1 中可能有无数个对象。有人知道如何设置吗?
您正在寻找 free-form-object:
A free-form object (arbitrary property/value pairs) is defined as:
type: object
This is equivalent to
type: object additionalProperties: true
and
type: object additionalProperties: {}
但是,如果您可以更改 API,我强烈建议将其更改为测试数组或对象定义的任何内容。将 id 作为 属性 放入此对象中,您就可以开始了。这使得为其创建 DTO 变得容易得多。
test1
是一个字符串到对象的字典,可以定义如下(假设 OpenAPI 3):
components:
schemas:
Tester: # Or however you would name the nested objects
tester1:
type: integer
example: 123
tester2:
type: string
example: Company
...
test1:
type: object
additionalProperties:
$ref: '#/components/schemas/Tester'
# Optional example for the `test1` property
example:
'1739573957':
tester1: 123
tester2: Company
'64903826718':
tester1: 123
tester2: Company
The objects inside test1 have randomized guids
在OpenAPI 3.1中,您可以使用additionalProperties
来定义test1
中的键是数字字符串。早期的 OpenAPI 版本无法定义字典键的格式。
# openapi: 3.1.0
test1:
type: object
patternProperties: # <-----
'^\d+$': # <-----
$ref: '#/components/schemas/Tester'