znalazłem obejście, dostarczając różne punkty końcowe:
swagger: "2.0"
paths:
/something/json:
get:
produces:
- application/json
responses:
200:
schema:
type: object
properties:
...
/something/csv:
get:
produces:
- text/csv
responses:
200:
schema:
type: string
Uwaga różne produces:
wewnątrz każdej get
i nikt na najwyższym poziomie.
Rzeczywista nagłówka odpowiedzi dla końcowego csv jest:
Content-Length:64
Content-Type:text/csv; charset=utf-8
Date:Fri, 26 Aug 2016
Próbowałem również dodawanie nagłówków do YAML (prosto po kodzie powyżej), ale to nie zmienia rzeczywistej nagłówek odpowiedzi:
headers:
Content-type:
type: string
description: text/csv; charset=utf-8
Content-Disposition:
type: string
description: attachment; filename=data.csv
na każdym punkcie końcowym pojawia się komunikat konsoli (buduję ten użyciem connexion):
Resource interpreted as Document but transferred with MIME type application/json
lub
Resource interpreted as Document but transferred with MIME type text/csv
Również CSV jest interpretowany jako plik do pobrania, nie są wyświetlane w przeglądarce.
... więc podejrzewam, że jeszcze tego nie rozumiem.
Po dalszych badaniach, myślę, że jedynym rozwiązaniem jest użycie różnych punktów końcowych dla różnych formatów zamiast parametru. (https://github.com/OAI/OpenAPI-Specification/issues/146 daje przykład). Czy to prawda? –
Właściwie nie jestem nawet pewien, czy działa to w związku ... określenie dwóch różnych "produkuje" wydaje się prowadzić do błędu typu "TypeError:" dict "object is not calllable". –