在Swagger 2.0中为数组定义枚举

Esk*_*nen 9 swagger swagger-2.0

type": "array",
"items": {
    "type": "string",
    "enum": ["MALE","FEMALE","WORKER"]
}
Run Code Online (Sandbox Code Playgroud)

要么

type": "array",
"items": {
    "type": "string",
},
"enum": ["MALE","FEMALE","WORKER"]
Run Code Online (Sandbox Code Playgroud)

没有关于这个的规范.当然,目标是让swagger-ui显示枚举值.

Arn*_*ret 5

这将取决于您要枚举的内容:

每个枚举值必须是所描述的对象类型

  • 在第一种情况下,字符串
  • 在第二个中,一个字符串数组

第一种语法表示这些是此数组中String的可能值

AnArray:
  type: array
  items:
    type: string
    enum:
      - MALE
      - FEMALE
      - WORKER
Run Code Online (Sandbox Code Playgroud)

该数组可以包含多个String,但是每个String必须具有MALE,FEMALE或WORKER值。

在Swagger UI中渲染:您必须将鼠标指针放在该值上才能看到枚举

第二个方法是这些是此数组的可能值

AnotherArray:
  type: array
  items:
    type: string
  enum:
    - 
      - FEMALE
      - WORKER
    -
      - MALE
      - WORKER
Run Code Online (Sandbox Code Playgroud)

因此,每个枚举值都是一个数组。在此示例中,此数组只能具有可能的值[“ FEMALE”,“ WORKER”]和[“ MALE”,“ WORKER”]。

不幸的是,即使此语法有效,Swagger UI中也不会显示任何枚举值。


Esk*_*nen 5

第一种情况是正确的,现在,swagger-ui会生成一个多选择的枚举值选择。

在此处输入图片说明