【问题标题】:Defining enum for array in Swagger 2.0在 Swagger 2.0 中为数组定义枚举
【发布时间】:2016-08-21 16:20:00
【问题描述】:
type": "array",
"items": {
    "type": "string",
    "enum": ["MALE","FEMALE","WORKER"]
}

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

?

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

【问题讨论】:

标签: swagger swagger-2.0


【解决方案1】:

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

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

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

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

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

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

第二个意思是这些是这个数组的可能值

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

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

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

【讨论】:

  • 第一个是我想要的,但不幸的是只有第二个显示了枚举值。 (这是一个请求参数定义)。在第二种情况下,我有一个平面结构,而不是数组。
  • 第二个例子不是数组数组而是字符串数组,就像第一个例子一样。不同之处在于您将枚举放置在哪个级别(数组与数组的项)。我不确定你在寻找什么,可以举一些这个数组的 JSON 例子吗?
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2015-02-20
    • 2015-11-22
    • 2019-01-28
    • 1970-01-01
    • 1970-01-01
    • 2021-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多