Swagger OpenAPI:您可以在示例中使用子组件吗?

Swagger OpenAPI:您可以在示例中使用子组件吗?,swagger,openapi,Swagger,Openapi,OpenAPI版本:3.0.1 我正在处理OpenAPI规范的示例部分 我熟悉组件,我知道我可以定义在根级别使用的组件示例。 例如: ... examples: Students: $ref: '#/components/examples/students' 然而,在我的例子中,我只使用一个端点,该端点可能会在响应中提供大量不同的内容。 因此,我正在使用几个不同的示例,为一个完整的示例创建一个组件对我来说毫无用处 另一方面,我在几个示例中重用了子部件,我想基于这些子部件

OpenAPI版本:3.0.1

我正在处理OpenAPI规范的示例部分

我熟悉组件,我知道我可以定义在根级别使用的组件示例。 例如:

...
  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作为已解析的引用,并且 希望将其用作文本值(这是一个非常有效的案例)。作为 因此,我们决定示例将是非解析的文本值。 目前,没有办法将可分析的示例作为外部示例 例如文字值