我希望在OpenAPI中表示以下JSON对象:
{
"name": "Bob",
"age": 4,
...
}
属性的数量和属性名称不是完全预先确定的,所以我希望使用additionalProperties。然而,我不太确定它将如何通过OpenAPI/Swagger 2.0来表示。我试过这个:
Person:
type: object
additionalProperties:
type:
- int
- string
或JSON等价物:
{
"Person": {
"type": "object",
"additionalProperties": {
"type": ["int", "string"]
}
}
}
但这不太管用。有没有办法保持我想要表示的JSON对象的结构,特别是字符串和整数,而不是任意对象类型?
OpenAPI 3支持oneOf
,因此您可以使用:
Person:
type: object
additionalProperties:
oneOf:
- type: string
- type: integer
OpenAPI 2.0不支持多类型值。您最多只能使用无类型模式,这意味着附加属性可以是任何内容——字符串、数字、布尔值等等——但您无法指定确切的类型。
Person:
type: object
additionalProperties: {}
这相当于:
Person:
type: object
虽然我看过OpenAPI规范中的例子: 我不明白为什么使用是地图/字典的正确模式。 规范中关于的唯一具体内容是: 以下属性取自JSON模式定义,但它们的定义已根据Swagger规范进行了调整。它们的定义与JSON模式中的定义相同,只有在原始定义引用JSON模式定义的情况下,才会使用模式对象定义。 项目 allOf 属性 附加属性
我在使用OpenAPI 3定义可重用架构组件时遇到问题,这将允许包含多种类型的数组。每个项目类型都继承自同一个父类,但具有特定的子属性。这在SwaggerHub上的视图中似乎可以正常工作,但示例视图没有正确显示数据。 太长,读不下去了有没有办法在OpenAPI 3中定义包含不同对象类型的数组?
我想为我的Swagger API创建一个递归规范。这个概念似乎没有出现在Swagger文档中,所以我怀疑这是不可能的。因此,我也愿意接受任何由Swagger支持的替代解决方案。 例如,我试图创建一个类似文档的结构。每个文档都有部分,每个部分都有文本和自己的部分。我计划使用这样的APIendpoint: http://a.b.com/docs/{文档ID} http://a.b.com/docs/{
我有大约40个API,它们具有类似的基本响应结构,如下所示: 因此,我有一个基本响应类,采用T类型的泛型,如下所示: 因此,对于API A,它返回类型为的对象及其自己的字段,我将返回响应作为控制器中的API响应: 在控制器中:响应数据=新响应();ResponseEntity response=新的ResponseEntity 在swagger中有没有一种方法可以递归地指定响应对象的模型?例如,我
使用OpenApi比Swagger的实际优势是什么? 我是openApi技术的新手,只是想知道openApi中有什么比Swagger更多的特性。网上的文件对我没有帮助。有人能帮帮我吗。
在我的项目中,我包含了openapi依赖项,并让Quarkus生成openapi定义。是否可以将版本0的endpoint分组为一个定义,其余的endpoint分组为另一个定义? 我有一个设置,可以浏览到example.com/v0/docs/或example.com/v1/docs/。在不同版本中启动两个API实例很容易,但我认为不改变端口是不可能的。我希望所有endpoint都可以在同一个端口上