Как глобально установить заголовок Accept в Swagger 3.0?
У меня есть новая установка OpenAPI через SwaggerHub. Есть ли возможность принудительно использовать определенный заголовок Accept?
Я настроил тип содержимого в ответе.
paths:
/test-path:
get:
responses:
'200':
description: OK
content:
application/vnd.company.v1.0.0+json:
При вставке другого заголовка Accept через запрос curl получается следующее:
{"message":"Missing matching response for specified Accept header"}
это имеет смысл, так как мы не предоставляем никакого ответа на это.
1 ответ
Решение
В отличие от OpenAPI/Swagger 2.0, который имеет глобальный consumes
а также produces
OpenAPI 3.0 требует, чтобы типы медиа запросов и ответов определялись в каждой операции отдельно. Там нет никакого способа определить Content-Type
или запросы или ответы во всем мире.
Вы можете, однако, $ref
общие определения ответов (такие как ответы об ошибках), которые могут уменьшить повторение.
openapi: 3.0.2
...
paths:
/foo:
get:
responses:
'400':
$ref: '#/components/responses/ErrorResponse'
/bar:
get:
responses:
'400':
$ref: '#/components/responses/ErrorResponse'
components:
responses:
ErrorResponse:
description: An error occurred
content:
application/vnd.error+json:
schema:
...