如何在OpenAPI / Swagger中递归引用封闭类型定义?

问题描述 投票:7回答:1

我正在Swagger编辑器中编写OpenAPI定义。

我的一个类型定义包含一个包含与父类型相同类型的子元素的数组。即这样的事情:

definitions:
  TreeNode:
    type: object
    properties:
      name:
        type: string
        description: The name of the tree node.
      children:
        type: array
        items:
          $ref: '#/definitions/TreeNode'

但是,Swagger Editor没有在children数组中选取递归引用,该数组简单地显示为“未定义”元素的数组。

有没有人知道如何做到这一点?`

recursion swagger swagger-ui openapi swagger-editor
1个回答
4
投票

你的定义非常好。在Swagger Editor和Swagger UI中渲染递归模式是一个众所周知的问题:

https://github.com/swagger-api/swagger-ui/issues/3325

要解决“示例值”中的null / undefined值,可以在架构中添加自定义example

definitions:
  TreeNode:
    type: object
    properties:
      name:
        type: string
        description: The name of the tree node.
      children:
        type: array
        items:
          $ref: '#/definitions/TreeNode'
    example:
      name: foo
      children:
        - name: bar
        - name: baz
          children:
            - name: qux
© www.soinside.com 2019 - 2024. All rights reserved.