2017-09-28 1 views
1

ich folgende JSON-Objekt in OpenAPI darzustellen suchen:mehrere Typen für additionalProperties durch Swagger/OpenAPI Angeben

{ 
    "name": "Bob", 
    "age": 4, 
    ... 
} 

Die Anzahl der Eigenschaften und Eigenschaftsnamen nicht vollständig vorbestimmt sind, so dass ich aussehen additionalProperties verwenden . Allerdings bin ich nicht sicher, wie es durch OpenAPI/Swagger 2.0 dargestellt werden würde. Ich habe versucht, dieses:

Person: 
    type: object 
    additionalProperties: 
    type: 
     - int 
     - string 

oder JSON-Äquivalent:

{ 
    "Person": { 
    "type": "object", 
    "additionalProperties": { 
     "type": ["int", "string"] 
    } 
    } 
} 

aber das hat nicht ganz funktioniert. Gibt es eine Möglichkeit, die Struktur des JSON-Objekts, das ich darstellen möchte, zu behalten, insbesondere für Strings und Ganzzahlen, und nicht für beliebige Objekttypen?

+0

@Helen Es ist nicht ganz willkürlich; Ich weiß, dass es entweder eine Zeichenfolge oder ein Int, aber nicht Booleans oder Nullen oder andere Objekte sein wird. – sle

+0

Related: [Swagger-Editor-Modell-Array mit verschiedenen Typen] (https://stackoverflow.com/q/41904148/113116) – Helen

Antwort

0

OpenAPI/Swagger 2.0 unterstützt keine Multi-Type-Werte. Das meiste, was Sie tun können, ist typeless schema, was bedeutet, dass die zusätzlichen Eigenschaften alles sein können - Zeichenfolgen, Zahlen, Boolesche Werte usw. - Sie können jedoch nicht die genauen Typen angeben.

Person: 
    type: object 
    additionalProperties: {} 

Dies entspricht:

Person: 
    type: object 


Sie können 3,0 bis OpenAPI wechseln möchten, die Sie verwenden können oneOf so unterstützt:

Person: 
    type: object 
    additionalProperties: 
    oneOf: 
     - type: string 
     - type: integer 
Verwandte Themen