如何在 OpenAPI / Swagger 中递归引用封闭类型定义?
How to refer to enclosing type definition recursively in OpenAPI / Swagger?
我正在 Swagger 编辑器中编写 OpenAPI 定义。
我的一个类型定义包含一个数组,其中包含与父元素类型相同的子元素。 IE。像这样:
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
数组中的递归引用,它只是显示为 "undefined" 个元素的数组。
有没有人知道如何做到这一点?`
你的定义很好。这是在 Swagger Editor 和 Swagger UI:
中呈现递归模式的已知问题
https://github.com/swagger-api/swagger-ui/issues/3325
要解决显示 null
/"string"
/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
我正在 Swagger 编辑器中编写 OpenAPI 定义。
我的一个类型定义包含一个数组,其中包含与父元素类型相同的子元素。 IE。像这样:
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
数组中的递归引用,它只是显示为 "undefined" 个元素的数组。
有没有人知道如何做到这一点?`
你的定义很好。这是在 Swagger Editor 和 Swagger UI:
中呈现递归模式的已知问题https://github.com/swagger-api/swagger-ui/issues/3325
要解决显示 null
/"string"
/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