使用 Swagger 2.0,我如何显示一个接受多种类型的数组模型?
Using Swagger 2.0, How Can I Show a model that is an array that accepts multiple types?
我正在使用 app.swaggerhub.com 生成 swagger 2.0 规范。
我的代码如下所示:
036 definitions:
--- // code that defines 'fieldRequirement' and 'slideRequirement'
106 requirement:
107 type: array
108 items:
109 oneOf:
110 - $ref: '#/definitions/fieldRequirement'
111 - $ref: '#/definitions/slideRequirement'
这returns同一行有3个错误(106):
106 should NOT have additional properties additionalProperty: oneOf
106 should be array
106 should match some schema in anyOf
我想要完成的是一个允许 fieldRequirement 或 slideRequirement 作为需求中的数组元素的模型。
oneOf
不受 swagger 2.0 支持,仅受 swagger 3.0.
支持
但是,如果你不能升级到 swagger 3.0,你可以使用字段 discriminator
的多态性,在你的情况下,你需要一个像这样的文件:
requirement:
type: array
items:
- $ref: '#/definitions/Requirement'
...
definitions:
Requirement:
type: object
discriminator: requirementType
properties:
requirementType:
type: string
required:
- requirementType
FieldRequirement:
allOf:
- $ref: '#/definitions/Requirement'
- type: object
properties:
...
SlideRequirement:
allOf:
- $ref: '#/definitions/Requirement'
- type: object
properties:
...
我正在使用 app.swaggerhub.com 生成 swagger 2.0 规范。
我的代码如下所示:
036 definitions:
--- // code that defines 'fieldRequirement' and 'slideRequirement'
106 requirement:
107 type: array
108 items:
109 oneOf:
110 - $ref: '#/definitions/fieldRequirement'
111 - $ref: '#/definitions/slideRequirement'
这returns同一行有3个错误(106):
106 should NOT have additional properties additionalProperty: oneOf
106 should be array
106 should match some schema in anyOf
我想要完成的是一个允许 fieldRequirement 或 slideRequirement 作为需求中的数组元素的模型。
oneOf
不受 swagger 2.0 支持,仅受 swagger 3.0.
但是,如果你不能升级到 swagger 3.0,你可以使用字段 discriminator
的多态性,在你的情况下,你需要一个像这样的文件:
requirement:
type: array
items:
- $ref: '#/definitions/Requirement'
...
definitions:
Requirement:
type: object
discriminator: requirementType
properties:
requirementType:
type: string
required:
- requirementType
FieldRequirement:
allOf:
- $ref: '#/definitions/Requirement'
- type: object
properties:
...
SlideRequirement:
allOf:
- $ref: '#/definitions/Requirement'
- type: object
properties:
...