在 Swagger 2.0 中为数组定义枚举

Defining enum for array in Swagger 2.0

type": "array",
"items": {
    "type": "string",
    "enum": ["MALE","FEMALE","WORKER"]
}

type": "array",
"items": {
    "type": "string",
},
"enum": ["MALE","FEMALE","WORKER"]

?

规范中没有关于此的内容。目标当然是让 swagger-ui 显示枚举值。

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

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

  • 第一种情况是字符串
  • 第二个是字符串数组

第一个语法表示这些是该数组中字符串的可能值

AnArray:
  type: array
  items:
    type: string
    enum:
      - MALE
      - FEMALE
      - WORKER

此数组可以包含多个字符串,但每个字符串必须有 MALE、FEMALE 或 WORKER 值。

第二个表示这些是这个数组的可能值

AnotherArray:
  type: array
  items:
    type: string
  enum:
    - 
      - FEMALE
      - WORKER
    -
      - MALE
      - WORKER

因此每个枚举值都是一个数组。在这个例子中,这个数组只能有可能的值 ["FEMALE","WORKER"] 和 ["MALE","WORKER"].

遗憾的是,即使此语法有效,Swagger 中也未显示任何枚举值 UI。

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