Ответ 1
Если вы говорите о параметрах заголовка, отправленных потребителем при вызове API:
Вы можете как минимум определить их раз и навсегда в разделах параметров, а затем ссылаться только на них, когда это необходимо. В следующем примере:
-
CommonPathParameterHeader
,ReusableParameterHeader
иAnotherReusableParameterHeader
определяются раз и навсегда вparameters
в корневом каталоге документа и могут использоваться в любом списке параметров -
CommonPathParameterHeader
указывается в разделеparameters
путей/resources
и/other-resources
, а это означает, что для ВСЕХ операций этих путей нужен этот заголовок -
ReusableParameterHeader
ссылается наget /resources
, что означает необходимость в этой операции - То же самое для
AnotherReusableParameterHeader
вget /other-resources
Пример:
swagger: '2.0'
info:
version: 1.0.0
title: Header API
description: A simple API to learn how you can define headers
parameters:
CommonPathParameterHeader:
name: COMMON-PARAMETER-HEADER
type: string
in: header
required: true
ReusableParameterHeader:
name: REUSABLE-PARAMETER-HEADER
type: string
in: header
required: true
AnotherReusableParameterHeader:
name: ANOTHER-REUSABLE-PARAMETER-HEADER
type: string
in: header
required: true
paths:
/resources:
parameters:
- $ref: '#/parameters/CommonPathParameterHeader'
get:
parameters:
- $ref: '#/parameters/ReusableParameterHeader'
responses:
'200':
description: gets some resources
/other-resources:
parameters:
- $ref: '#/parameters/CommonPathParameterHeader'
get:
parameters:
- $ref: '#/parameters/AnotherReusableParameterHeader'
responses:
'200':
description: gets some other resources
post:
responses:
'204':
description: Succesfully created.
Если ваш разговор о заголовке отправлен с каждым ответом API К сожалению, вы не можете определить повторно используемые заголовки ответов. Но по крайней мере вы можете определить повторно используемый ответ, содержащий эти заголовки для общего ответа, например 500.
Пример:
swagger: '2.0'
info:
version: 1.0.0
title: Header API
description: A simple API to learn how you can define headers
parameters:
CommonPathParameterHeader:
name: COMMON-PARAMETER-HEADER
type: string
in: header
required: true
ReusableParameterHeader:
name: REUSABLE-PARAMETER-HEADER
type: string
in: header
required: true
AnotherReusableParameterHeader:
name: ANOTHER-REUSABLE-PARAMETER-HEADER
type: string
in: header
required: true
paths:
/resources:
parameters:
- $ref: '#/parameters/CommonPathParameterHeader'
get:
parameters:
- $ref: '#/parameters/ReusableParameterHeader'
responses:
'200':
description: gets some resources
headers:
X-Rate-Limit-Remaining:
type: integer
X-Rate-Limit-Reset:
type: string
format: date-time
/other-resources:
parameters:
- $ref: '#/parameters/CommonPathParameterHeader'
get:
parameters:
- $ref: '#/parameters/AnotherReusableParameterHeader'
responses:
'200':
description: gets some other resources
headers:
X-Rate-Limit-Remaining:
type: integer
X-Rate-Limit-Reset:
type: string
format: date-time
post:
responses:
'204':
description: Succesfully created.
headers:
X-Rate-Limit-Remaining:
type: integer
X-Rate-Limit-Reset:
type: string
format: date-time
'500':
$ref: '#/responses/Standard500ErrorResponse'
responses:
Standard500ErrorResponse:
description: An unexpected error occured.
headers:
X-Rate-Limit-Remaining:
type: integer
X-Rate-Limit-Reset:
type: string
format: date-time
Об OpenAPI (fka. Swagger) Следующая версия
Спецификация OpenAPI (fka. Swagger) будет развиваться и включать в себя определение заголовков ответных ответов среди других вещей (см. https://github.com/OAI/OpenAPI-Specification/issues/563).