Что я хотел бы сделать, так это указать, что иногда ответом на вызов API может быть документ PDF, а иногда - JSON. Я хотел бы сделать это в формате OpenAPI 3.0. В случае PDF ответ будет выглядеть следующим образом:
responses:
'200':
description: An invoice in PDF format.
content:
application/pdf:
schema:
type: string
format: binary
А в случае ответа JSON это будет описывать ответ:
responses:
'200':
description: A JSON object containing user name and avatar
content:
application/json:
schema:
$ref: "#/components/schemas/Invoice"
Документация OAS3 (https://swagger.io/docs/specification/describing-responses/) предоставляет следующий пример того, как указать, что одна из нескольких различных схем JSON может быть ответом на определенный вызов API. Это почти то, что я хочу, кроме как вместо описания разные возможные схемы JSON, я бы хотел указать разные возможные типы контента, как описано выше. Есть ли способ сделать это в формате OAS3?
responses:
'200':
description: A JSON object containing pet information
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/Cat'
- $ref: '#/components/schemas/Dog'
- $ref: '#/components/schemas/Hamster'