Как глобально установить заголовок 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:
            ...
Другие вопросы по тегам