2016-06-29 21 views
1

Ich habe eine Frage darüber, wie ein Array von Referenzen in Swagger mit der Yaml-Syntax zu definieren. Ich habe folgendes yaml Schnipsel, die mein Feld definiert:Swagger.io - Array von Referenzen in Post-Methode

- name: myfield 
     in: formData 
     description: 'description' 
     required: false 
     type: array 
     items: 
     $ref: '#/definitions/MyRef' 

Die Definition ist die folgende:

MyRef: 
    type: object 
    properties: 
     id: 
     type: integer 
     value: 
     type: string 
     description: the value for the myRef 

In der Vorschau auf meinem Feld alles sieht gut aus:

swagger

Aber ich habe den Fehler "Keine gültige Parameterdefinition" erhalten und im Detailfehler habe ich "Daten stimmt mit keinem Schema von 'oneOf'" überein.

Ich kann nichts dergleichen in der Dokumentation finden. Also, was ist die richtige Struktur oder was fehlt mir?

Antwort

3

das ist, weil formData kann nur Primitive oder Arrays von Primitiven enthalten. Sie können $ref nicht als items-Wert verwenden. Dies wird in der nächsten Version der Spezifikation (3.0) geändert, wird aber in den 2.0-Werkzeugen nicht unterstützt, da die Spezifikation dies nicht erlaubt.

+0

Danke für die Antwort. Gibt es eine Alternative, was ich gerne machen würde? Oder muss ich bis 3.0 warten? –

+0

Für jetzt müssen Sie ein Array von Zeichenfolgen haben, und in der Zeichenfolge können Sie alles entschlüsseln, die eingefügt werden. Oder Sie können die Benutzeroberfläche fork & hacken, aber ich empfehle das nicht. Die meisten Leute verwenden String-Arrays als eine Art Arbeitsumgebung – fehguy