在 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。
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。