Определение перечисления для массива в Swagger 2.0

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

или

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

?

ничего в спецификации об этом. Цель, конечно, получить swagger-ui, чтобы показать значения перечисления.

2 ответов


первый случай правильный, и в эти дни swagger-ui генерирует множественный выбор значений перечисления.

enter image description here


это будет зависеть от того, что вы хотите перечисления:

каждое значение перечисления должно иметь описываемый тип объекта

  • в первом случае строку
  • во втором один массив String

первый синтаксис означает это возможные значения строки в этом массиве

AnArray:
  type: array
  items:
    type: string
    enum:
      - 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
каждого значения enum-это массив. В этом примере этот массив может иметь только возможное значение ["женский", "рабочий"] и ["мужской","рабочий"].

к сожалению, даже если этот синтаксис допустим, никакие значения перечисления не отображаются в Swagger UI.