【发布时间】:2019-10-25 08:48:21
【问题描述】:
我有一个集成了 Swagger 和 Swashbuckle v4.x 的 .NET Core 2.x 项目。这一切都非常有效。
但是,现在我需要将查询字符串附加到 Swagger 以 www.foo.com/myendpoint?authorization=APIKEY 的形式触发的每个 GET。为此,我在 Startup.ConfigureServices 中有以下内容:
services.AddSwaggerGen(c => {
c.SwaggerDoc("v1", new Info { Title = "My API", Version = "v1" });
c.AddSecurityDefinition("api key", new ApiKeyScheme() {
Description = "Authorization query string expects API key",
In = "query",
Name = "authorization",
Type = "apiKey"
});
});
当我启动 swagger 时,它会显示一个对话框,并在我输入 API 密钥时成功接受它。但是,所有的 API 调用仍然没有查询字符串。
我错过了什么?
【问题讨论】:
-
添加定义后添加
c.AddSecurityRequirement(new Dictionary<string, IEnumerable<string>> { { "api key", new [] {} }};会怎样?这应该表明所有操作都应该通过该定义。 -
@JonathonChase 成功了,谢谢先生!
标签: c# .net-core swagger swashbuckle