我在使用OpenAPI 3定义可重用架构组件时遇到问题,这将允许包含多种类型的数组。每个项目类型都继承自同一个父类,但具有特定的子属性。这在SwaggerHub上的model
视图中似乎可以正常工作,但示例视图没有正确显示数据。
太长,读不下去了有没有办法在OpenAPI 3中定义包含不同对象类型的数组?
Response:
allOf:
- $ref: '#/components/schemas/BaseResponse'
- type: object
title: A full response
required:
- things
properties:
things:
type: array
items:
anyOf:
- $ref: '#/components/schemas/ItemOne'
- $ref: '#/components/schemas/ItemTwo'
- $ref: '#/components/schemas/ItemThree'
你的规格是正确的。只是在Swagger UI中还不支持对模式之一和模式之一进行示例呈现。您可以跟踪此问题以获取状态更新:
使用oneOf属性的多个响应不会出现在UI
解决方法是在oneOf
/anyOf
模式或父模式旁边手动添加示例
:
things:
type: array
items:
anyOf:
- $ref: '#/components/schemas/ItemOne'
- $ref: '#/components/schemas/ItemTwo'
- $ref: '#/components/schemas/ItemThree'
# Note that array example is on the same
# level as `type: array`
example:
- foo: bar # Example of ItemOne
baz: qux
- "Hello, world" # Example of ItemTwo
- [4, 8, 15, 16, 23, 42] # Example of ItemThree
问题内容: 很抱歉,如果这是重复的,尽管我无法在任何地方找到确切的答案: 有没有办法在 postgreSQL中 创建一个包含多个数据类型的数组? 我有一个类型的列(类型文本数组);尽管我想从type插入三个条目,然后插入第四个条目到此数组中。 有办法吗?如果是这样,怎么办? 问题答案: 我不认为有一种方法可以声明具有多个类型的数组。但是,我认为您可以使用复合类型来完成您想做的事情,例如, 然后,您
问题内容: 我可以用来存储多种不同类型的数据(整数/字符串/等)?我来自PHP背景,可以将不同类型的数据存储到数组中,但是我不知道如何在Java中进行操作。 举个例子: 如何用Java做类似的事情? 问题答案: Java是一种强类型语言。在PHP或Javascript中,变量没有严格的类型。但是,在Java中,每个对象和基元都有严格的类型。您可以将多种类型的数据存储在Array中,但只能将其作为对
我希望在OpenAPI中表示以下JSON对象: 属性的数量和属性名称不是完全预先确定的,所以我希望使用additionalProperties。然而,我不太确定它将如何通过OpenAPI/Swagger 2.0来表示。我试过这个: 或JSON等价物: 但这不太管用。有没有办法保持我想要表示的JSON对象的结构,特别是字符串和整数,而不是任意对象类型?
在我的Spring项目中,我使用Springdoc生成OpenApiSpecification文档。我用这些注释创建了我的Api。我想用不同的mediatype拥有相同的endpointurl来处理不同对象的POST。 生成的开放式Api规范文档为: 我有几个问题: > 终结点名称没有意义(保存\u 1) 当我使用OpenAPI生成器根据此规范生成Angular客户端时,我收到一些警告,这些警告会
问题内容: 我正在使用Express创建网站和API,我想在同一路径上提供多种内容类型(JSON,XML,HTML)。在Express中,有一种更好的方法可以编写以下内容: 特别是上面的代码似乎很重复,可能有一种更标准的编写方式。 问题答案: 有response.format方法,该方法使用基于“ Accept”标头选择某些呈现方法。http://expressjs.com/4x/api.html
在SpringMVC请求头中可以有多种内容类型吗?我要通过: 通过邮递员到我的API。目前,我得到了