Web API添加Swagger
1,添加NuGet包:Swashbuckle
2,添加类HttpAuthHeaderFilter:
/// <summary> /// swagger 增加 AUTH 选项 /// </summary> public class HttpAuthHeaderFilter : IOperationFilter { /// <summary> /// 应用 /// </summary> /// <param name="operation"></param> /// <param name="schemaRegistry"></param> /// <param name="apiDescription"></param> public void Apply(Operation operation, SchemaRegistry schemaRegistry, ApiDescription apiDescription) { if (operation.parameters == null) operation.parameters = new List<Parameter>(); var filterPipeline = apiDescription.ActionDescriptor.GetFilterPipeline(); //判断是否添加权限过滤器 var isAuthorized = filterPipeline.Select(filterInfo => filterInfo.Instance).Any(filter => filter is IAuthorizationFilter); //判断是否允许匿名方法 var allowAnonymous = apiDescription.ActionDescriptor.GetCustomAttributes<AllowAnonymousAttribute>().Any(); if (isAuthorized && !allowAnonymous) { operation.parameters.Add(new Parameter { name = "Authorization", @in = "header", description = "鉴权Token", required = false, type = "string" }); } } }
3,在生成的SwaggerConfig中加入
c.OperationFilter<HttpAuthHeaderFilter>(); c.IncludeXmlComments(string.Format("{0}/bin/API.XML", System.AppDomain.CurrentDomain.BaseDirectory));
4,在 属性->生成 中的 XML文档文件中打勾,如下图:

浙公网安备 33010602011771号