我已经试过了,但是Swagger UI不能渲染它,所以我猜测它是错误的:
oneOf:
- items:
- $ref: '#/components/schemas/SchemaA'
- items:
- $ref: '#/components/schemas/SchemaB'
可以使用< code>oneOf来定义您的场景,如下所示:
oneOf:
- type: array
items:
type: string
- type: array
items:
type: integer
- type: array
items:
$ref: '#/components/schemas/SchemaA'
在普通JSON模式中,type:array
可以从oneOf
,移到oneOf
旁边,但我不确定OpenAPI是否允许这样做(OpenAPI规范对此不清楚)。
type: array
oneOf:
- items:
type: string
- items:
type: integer
- items:
$ref: '#/components/schemas/SchemaA'
我试过这个,但是Swagger UI无法渲染
目前,Swagger UI 不会自动为 oneOf
和 anyOf
架构生成示例(请参阅此问题)。解决方法是在 oneOf
手动旁边添加一个示例
:
example: [1, 2, 3] # <------
oneOf:
- type: array
items:
type: string
- type: array
items:
type: integer
- type: array
items:
$ref: '#/components/schemas/SchemaA'
我使用和。我有一个带有方法的控制器,其中包含作为url参数的数组: 为什么会发生这种情况?为什么项目中没有显示示例数组?
OpenAPI3.0规范规定,没有任何类型的模式将匹配任何数据类型。 没有类型的模式匹配任何数据类型--数字、字符串、对象等等。 因此,对此进行建模的正确方法是下面的Swagger定义,其中没有属性: 但是,每个开放问题Swagger-core#3834,Java值都映射到OpenAPI类型,而不是任意类型。如上所述,这意味着这样的API返回或接受不是OpenAPI的类型是不正确的,例如、、等。
通过Swagger/OpenApi生成代码时,我想从equals/hascode方法中排除一些属性。 以下是在YAML文件中定义的对象的示例: 下面是生成的等于方法: 问题是,我只希望在
在我的OpenAPI规范中,是否有可能将参数定义为对象,而不必定义其属性(匿名对象)?更具体地说,我希望我的应用编程接口能够接受这些匿名对象的数组。 这是我所拥有的,但是我在斯瓦格编辑器中得到了一个“无效参数定义”错误。 以下是错误:
如何为这些参数编写OpenAPI(Swagger)定义?