Я использую ApiKeyAuth
в OpenAPI (с Python и Connexion) и хочу иметь возможность передавать параметр X-API-Key
либо в header
, либо в query
. Спецификация, кажется, предполагает, что я могу иметь только одно или другое, а не оба одновременно.
Этот способ просто перезаписывает ключ, поэтому доступен только метод header
:
openapi: '3.0.0'
...
components:
securitySchemes:
ApiKeyAuth:
type: apiKey
in: query
name: X-API-Key
x-apikeyInfoFunc: app.apikey_auth
ApiKeyAuth:
type: apiKey
in: header
name: X-API-Key
x-apikeyInfoFunc: app.apikey_auth
...
Это вызывает ошибку проверки oneOf
:
components:
securitySchemes:
ApiKeyAuth:
type: apiKey
in:
- header
- query
name: X-API-Key
x-apikeyInfoFunc: app.apikey_auth
Результат, который я хочу, должен быть в состоянии сделать:
curl -X GET "http://127.0.0.1:8000/acme" -H "accept: application/json" -H "X-API-Key: test12345"
Or:
curl -X GET "http://127.0.0.1:8000/acme?X-API-Key=test12345" -H "accept: application/json"
ApiKeyAuth
во что-то другое. Полный пример см. в связанном вопросе ^^. - person Helen   schedule 28.01.2020