В частности, для Swashbuckle (у NSwag есть собственные средства регистрации потоков авторизации) недостаточно просто определить определение безопасности, вам также необходимо зарегистрировать, какие операции используют его.
Поскольку вы хотитедобавьте api-ключ ко всем операциям, ваш сценарий использования довольно прост: просто зарегистрируйте требование безопасности для своего определения, которое вы можете сделать так:
c.AddSecurityRequirement(new Dictionary<string, IEnumerable<string>> { { "api key", new[] {} } };
Подробнее о том, какопределить, настроить и зарегистрировать различные схемы авторизации для ваших операций здесь .
А для предстоящей версии Swashbuckle версии 5 можно использовать следующий код:
c.AddSecurityDefinition("api key", new OpenApiSecurityScheme {
Type = SecuritySchemeType.ApiKey,
In = ParameterLocation.Query,
Name = "authorization",
Description = "Authorization query string expects API key"
});
var key = new OpenApiSecurityScheme() { Name = "api key"};
var requirement = new OpenApiSecurityRequirement {
{ key, new List<string>() }
};
c.AddSecurityRequirement(requirement);