Swagger OpenAPI:您可以在示例中使用子组件吗?
OpenAPI版本:3.0.1 我正在处理OpenAPI规范的示例部分 我熟悉组件,我知道我可以定义在根级别使用的组件示例。 例如:Swagger OpenAPI:您可以在示例中使用子组件吗?,swagger,openapi,Swagger,Openapi,OpenAPI版本:3.0.1 我正在处理OpenAPI规范的示例部分 我熟悉组件,我知道我可以定义在根级别使用的组件示例。 例如: ... examples: Students: $ref: '#/components/examples/students' 然而,在我的例子中,我只使用一个端点,该端点可能会在响应中提供大量不同的内容。 因此,我正在使用几个不同的示例,为一个完整的示例创建一个组件对我来说毫无用处 另一方面,我在几个示例中重用了子部件,我想基于这些子部件
...
examples:
Students:
$ref: '#/components/examples/students'
然而,在我的例子中,我只使用一个端点,该端点可能会在响应中提供大量不同的内容。
因此,我正在使用几个不同的示例,为一个完整的示例创建一个组件对我来说毫无用处
另一方面,我在几个示例中重用了子部件,我想基于这些子部件创建组件
类似于这个简化的示例,其中我有一个具有相同教师和邮政地址的学生列表:
...
examples:
Students:
value:
- name: James Bond
teacher:
$ref: '#/components/examples/teacherTrunchbull'
postalAddress:
$ref: '#/components/examples/london'
- name: Bilbo Baggins
teacher:
$ref: '#/components/examples/teacherTrunchbull'
postalAddress:
$ref: '#/components/examples/london'
- .......
...
components:
examples:
teacherTrunchbull:
(value: ??)
name: Agatha Trunchbull
address: School street 34
postalAddress:
number: 5201
name: London
london:
(value: ??)
number: 5201
name: London
作为记录,我知道示例需要包含“value”作为字段,但我所能做的就是创建一个完整的示例,而不是示例的子组件
我确实怀疑OpenAPI版本3.0.1。不支持我提出的问题,在这种情况下,只有这样做有效:
...
examples:
Students:
$ref: '#/components/examples/students'
如果是这种情况,请确认,以便我们可以将其称为案例结束。
但如果我所问的确实存在,那么我该怎么做呢
非常感谢您的回答。示例
不支持以这种方式使用$ref
。
从错误线程:
我们在这里的意思(如果需要,可以进一步澄清)是
这里给出的值是示例的实际值。这是不可能的
通过工具进一步解析。因此,文档或模拟服务应该
在进一步“使用”$ref之前,不要尝试解析它们
背后的原因正是$ref。我们分不清什么时候结束
用户希望使用$ref作为已解析的引用,并且
希望将其用作文本值(这是一个非常有效的案例)。作为
因此,我们决定示例将是非解析的文本值。
目前,没有办法将可分析的示例作为外部示例
例如文字值