Ответ 1
Да, OpenAPI (Swagger) 2.0 и 3.0 позволяет определять несколько определений безопасности и помечать операцию как требующую нескольких ценных бумаг, например пару ключей API.
В следующем примере я определяю два ключа API, Key
и SecretKey
, оба из которых должны присутствовать в заголовках каждого запроса для аутентификации.
swagger: '2.0'
info:
version: 0.0.0
title: Simple API
securityDefinitions:
key:
type: apiKey
in: header
name: Key
secret_key:
type: apiKey
in: header
name: SecretKey
# Or if you use OpenAPI 3.0:
# components:
# securitySchemes:
# key:
# type: apiKey
# in: header
# name: Key
# secret_key:
# type: apiKey
# in: header
# name: SecretKey
paths:
/:
get:
# Both 'Key' and 'SecretKey' must be used together
security:
- key: []
secret_key: []
responses:
200:
description: OK
Обратите внимание, что это отличается от
security:
- key: []
- secret_key: [] # <-- Note the leading dash here
Это означает, что конечная точка ожидает либо Key
либо SecretKey
, но не оба.