• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

WebApi Swagger隐藏接口

武飞扬头像
小目标一个亿
帮助1

1、Nuget安装Swashbuckle.AspNetCore

2、新建HiddenApiFilter类,

  1.  
    /// <summary>
  2.  
    /// 隐藏不需要显示的接口
  3.  
    /// </summary>
  4.  
    [AttributeUsage(AttributeTargets.Method | AttributeTargets.Class)]
  5.  
    public partial class HiddenApiAttribute : Attribute { }
  6.  
    public class HiddenApiFilter : IDocumentFilter
  7.  
    {
  8.  
    public void Apply(OpenApiDocument swaggerDoc, DocumentFilterContext context)
  9.  
    {
  10.  
    foreach (ApiDescription apiDescription in context.ApiDescriptions)
  11.  
    {
  12.  
    var api = apiDescription.ActionDescriptor as Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor;
  13.  
    var contoller = api.ControllerName;
  14.  
    List<string> list = new List<string>();
  15.  
    //添加需要隐藏控制器
  16.  
    list.Add("Access");
  17.  
    list.Add("admin");
  18.  
    list.Add("AirConditioner");
  19.  
    list.Add("Alarm");
  20.  
    list.Add("ArchiverDetails");
  21.  
    list.Add("ArchivesBox");
  22.  
    list.Add("ArchivesTypeClass");
  23.  
    list.Add("Area");
  24.  
    list.Add("Audit");
  25.  
    list.Add("DenseFrameTask");
  26.  
    list.Add("device");
  27.  
    list.Add("EnvironmentalEquipment");
  28.  
    list.Add("Equipment");
  29.  
    list.Add("Gygzz");
  30.  
    list.Add("device");
  31.  
    list.Add("iclock");
  32.  
    list.Add("Irealer");
  33.  
    list.Add("Login");
  34.  
    list.Add("MaintenanceInstructions");
  35.  
    list.Add("MonitoringSystemSettings");
  36.  
    list.Add("PDA");
  37.  
    list.Add("Permission");
  38.  
    list.Add("ReportStatisticsService");
  39.  
    list.Add("RFIDInventory");
  40.  
    list.Add("RFIDTask");
  41.  
    list.Add("Role");
  42.  
    list.Add("ScanCode");
  43.  
    list.Add("SystemSettings");
  44.  
    list.Add("task");
  45.  
    list.Add("ThreeDimensional");
  46.  
    list.Add("Threshold");
  47.  
    list.Add("tools");
  48.  
    list.Add("User");
  49.  
    list.Add("Video");
  50.  
    list.Add("WareHouse");
  51.  
    list.Add("Archives");
  52.  
     
  53.  
    if (list.Contains(api.ControllerName))//过滤的核心逻辑
  54.  
    {
  55.  
    string key = "/" apiDescription.RelativePath;
  56.  
    if (key.Contains("?"))
  57.  
    {
  58.  
    int idx = key.IndexOf("?", StringComparison.Ordinal);
  59.  
    key = key.Substring(0, idx);
  60.  
    }
  61.  
    swaggerDoc.Paths.Remove(key);
  62.  
    }
  63.  
     
  64.  
    }
  65.  
    }
  66.  
    }
学新通

3、在Startup.cs类中的AddSwaggerGen方法中添加  c.DocumentFilter<HiddenApiFilter>();

 c.DocumentFilter<HiddenApiFilter>();

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgfjjjc
系列文章
更多 icon
同类精品
更多 icon
继续加载