在Swagger 2.0中为数组定义枚举

时间:2016-04-27 11:35:49

标签: swagger swagger-2.0

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

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

规范中没有任何内容。目标当然是让swagger-ui显示枚举值。

2 个答案:

答案 0 :(得分:5)

第一种情况是正确的,这些天swagger-ui生成枚举值的多重选择。

library

答案 1 :(得分:3)

这取决于你想要枚举的内容:

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

  • 在第一种情况下是一个字符串
  • 在第二个中是一个String of String

第一种语法意味着这些是此数组中字符串的可能值

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

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

Rendering in Swagger UI: You have to put mouse pointer on the value to see enum

第二个意味着这些是此数组的可能值

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

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

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