2016-10-24 3 views
3

Ich kann nicht finden, wenn es möglich ist, ein Header-Objekt zu deklarieren, um es in Antwortheadern wiederzuverwenden, gibt es Beispiele, die Objekte für Antwortschemas definieren, aber nicht zu Antwortheadern transponieren. Ich habe nur ein wieder verwendbares Antwortobjekt wie diese macht verwaltet:Swagger Headerdefinitionen

responses: 
    DownloadOk: 
    description: Dowload Ok 
    headers: 
     Content-Length: 
     description: response length 
     type: integer 
     Document-Length: 
     description: document length 
     type: integer 

Aber wie gesagt, würde Ich mag nur den Kopfteil zu halten.

Hier ist, wo ich es verwenden möchte:

responses: 
    200: 
     description: Dowload Ok 
     headers: 
     $ref: '#/definitions/DowloadOk' 

Antwort

5

Nach Swagger/OpenAPI spec können Sie nicht. Definitions muss Schema Objects enthalten, und diese erlauben keine beliebigen Eigenschaften, sondern eine bestimmte Teilmenge des JSON-Schemas (siehe the link).

Sie konnten eine Response Object definieren und darauf verweisen, weil die Swagger Object globale responses Eigenschaft hat. Nichts dergleichen für Header. Um diese Zeit sowieso nicht. Es könnte sich lohnen, eine solche Funktion anzufordern.

+0

Ich habe die Teilmenge versucht, aber es hat nicht funktioniert. Kopfzeilen: Dokumentlänge: $ ref: '#/definitions/DowloadOk' – user1754675

2

Ich habe das gleiche Problem konfrontiert. In dem Dokument deklarieren sie;

Beachten Sie, dass die OpenAPI-Spezifikation derzeit nicht die Definition gemeinsamer Antwortheader für verschiedene Antwortcodes oder unterschiedliche API-Vorgänge erlaubt. Sie müssen die Header für jede Antwort einzeln definieren.

siehe -Antwortheaders Abschnitt bei Describing Responses.