Asp.Net Core WebAPI使用Swagger时API隐藏与分组
隐藏:
/// <summary> /// 隐藏swagger接口特性标识 /// </summary> [AttributeUsage(AttributeTargets.Method | AttributeTargets.Class)] public class HiddenApiAttribute : Attribute { }
/// <summary> /// 自定义Swagger隐藏过滤器 https://www.cnblogs.com/wyt007/p/10650974.html /// </summary> public class HiddenApiFilter : IDocumentFilter { public void Apply(OpenApiDocument swaggerDoc, DocumentFilterContext context) { foreach (ApiDescription apiDescription in context.ApiDescriptions) { if (apiDescription.TryGetMethodInfo(out MethodInfo method)) { if (method.ReflectedType.CustomAttributes.Any(t => t.AttributeType == typeof(HiddenApiAttribute)) || method.CustomAttributes.Any(t => t.AttributeType == typeof(HiddenApiAttribute))) { string key = "/" + apiDescription.RelativePath; if (key.Contains("?")) { int idx = key.IndexOf("?", System.StringComparison.Ordinal); key = key.Substring(0, idx); } swaggerDoc.Paths.Remove(key); } } } } }
参考:
https://www.cnblogs.com/wyt007/p/10650974.html
此随笔或为自己所写、或为转载于网络。仅用于个人收集及备忘。