Как глобально установить заголовок Accept в Swagger 3.0? - PullRequest
0 голосов
/ 11 января 2019

У меня новая настройка 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 Ответ

0 голосов
/ 11 января 2019

В отличие от OpenAPI / Swagger 2.0, который имеет global 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:
            ...
...