我最近已从Swashbuckle过渡到Swagger-Net。进行更改后,我遇到的一个问题是,现在我无法调用需要在Authorization标头中发送令牌的API。以下是我之前在Swashbuckle和现在的Swagger-Net中在SwaggerConfig.cs中保存代码的方式
小巧
//section for .EnableSwagger
c.ApiKey("apiKey")
.Description("API Key Authentication")
.Name("Authorization")
.In("header");
//section for .EnableSwaggerUI
c.EnableApiKeySupport("Authorization", "header");
Swagger-Net
//section for .EnableSwagger
c.ApiKey("Authorization", "header", "API Key Authentication");
对于Swagger-Net,我在.EnableSwaggerUI部分找不到任何等效的.EnableAPIKeySupport。访问/ Swagger UI呈现并使用Authorize传递我的令牌后,它不会将该令牌发送到API。我可以说它没有被发送,因为它不在给定的示例CURL中。
答案 0 :(得分:3)
是的,Swagger-Net ApiKey
就是您所需要的
c.ApiKey("apiKey", "header", "API Key Authentication", typeof(KeyAuthAttribute));
这是一个有效的示例:
http://turoapi.azurewebsites.net/swagger/ui/index#/Echo/Echo_Post
后面的代码在这里:
https://github.com/heldersepu/TuroApi/blob/master/TuroApi/App_Start/SwaggerConfig.cs#L67