2016-04-27 5 views
6
type": "array", 
"items": { 
    "type": "string", 
    "enum": ["MALE","FEMALE","WORKER"] 
} 

oderdefinieren ENUM für Array in Swagger 2,0

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

?

Nichts in der Spezifikation zu diesem Thema. Das Ziel ist natürlich, swagger-ui zu bekommen, um die Enum-Werte zu zeigen.

+0

Beide validieren in http://bigstickcarpet.com/swagger-parser/www/index.html –

Antwort

4

Der erste Fall ist korrekt und in diesen Tagen erzeugt swagger-ui eine Mehrfachauswahl der Enum-Werte.

enter image description here

3

Es wird davon abhängen, was Sie Enum wollen:

Jeder Enum-Wert des beschriebenen Objekttypen

  • in ersten Fall ein String
  • in zweiten ein Array von String sein muss

erste Syntax bedeutet Dies sind die möglichen Werte des String in diesem Array

Dieses Array kann mehrere Strings enthalten, aber jeder String muss den Wert MALE, FEMALE oder WORKER haben.

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

Zweites ein Mittel Dies sind die möglichen Werte dieses Arrays

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

Jeder ENUM-Wert ist daher ein Array. In diesem Beispiel kann dieses Array nur den möglichen Wert ["FEMALE", "WORKER"] und ["MALE", "WORKER"] haben.

Leider, auch wenn diese Syntax gültig ist, werden in Swagger UI keine Aufzählungswerte angezeigt.

+0

Die erste ist, was ich will, aber leider nur die zweite zeigt die ENUM-Werte. (Dies ist eine Anforderungsparameterdefinition). Und im zweiten Fall habe ich eine flache Struktur, nicht Array von Arrays. –

+0

Das zweite Beispiel ist nicht ein Array von Array, sondern ein Array von String wie im ersten Beispiel. Der Unterschied ist, auf welcher Ebene Sie die Enumeration setzen (Array vs Array-Element). Ich bin mir nicht sicher, zu verstehen, was Sie suchen, könnte ein JSON-Beispiel für dieses Array geben? –

Verwandte Themen