Здесь говорится здесь , что не следует определять заголовок Accept внутри файла YASL OAS3 в качестве параметра, но в responses.<code>.content.<media-type>
.Пример:
paths:
/employees:
get:
summary: Returns a list of employees.
responses:
'200': # Response
description: OK
content: # Response body
application/json: # Media type
schema: # Must-have
type: object # Data type
properties:
id:
type: integer
name:
type: string
fullTime:
type: boolean
example: # Sample data
id: 1
name: Jessica Right
fullTime: true
Это заставляет меня задуматься, потому что, если я создаю клиент на основе этого файла OAS3, используя swagger-codegen строку, указанную ниже "content:" (в моем примере application/json
) используется как заголовок Accept при выполнении вызова /employees
с использованием этого клиента.Таким образом, фрагмент кода, который идентифицирует человека, который использует мой API («userID»), не будет иметь никакого эффекта:
DefaultApi api = new DefaultApi();
api.getApiClient().addDefaultHeader("Accept", "application/vnd.mycompany.userID.v1+json");
Но, как владелец моего API, я нехочу предоставить файл подмены для каждого пользователя.
Почему заголовок Accept в OAS3 определяется в разделе ответа, который, по моему мнению, должен определять только тип носителя для результата?