Я написал много API в С# и создал сайт документации Swagger с использованием Swashbuckle.
Для аутентификации вызовов REST я использую ключ API в заголовке.
Я создал страницу, которая позволяет загружать определенный клиент для любого языка программирования, как описано здесь: https://generator.swagger.io
Я хотел бы включить пользователя для создания клиента с его собственным ключом API, поэтому ему больше не нужно вручную устанавливать ключ API в код.
В моем Swagger JSON у меня есть это определение безопасности:
"securityDefinitions": {
"apiKey": {
"type": "apiKey",
"description": "API Key Authentication",
"name": "X-ApiKey",
"in": "header"
}
}
На странице Generator Client Generator я нашел эту модель, которая позволяет настраивать параметры клиентов, но я не могу найти, как (и если) ключ API может быть жестко закодирован (или любой другой вид авторизации) в клиентском коде.
GeneratorInput {
spec (object, optional),
options (object, optional),
swaggerUrl (string, optional),
authorizationValue (AuthorizationValue, optional),
securityDefinition (SecuritySchemeDefinition, optional)
}
AuthorizationValue {
value (string, optional),
type (string, optional),
keyName (string, optional)
}
SecuritySchemeDefinition {
description (string, optional),
type (string, optional)
}
Я предполагаю, что должен установить объект AuthorizationValue, но нет документации об этом (или я не могу найти его).
Достаточно было бы иметь возможность иметь сгенерированную клиентскую lib для добавления произвольного HTTP-заголовка ко всем запросам.
В этом случае мы могли бы просто добавить:
X-ApiKey:{whatever the key is}
У кого-нибудь есть идея?
Большое спасибо!