zoukankan      html  css  js  c++  java
  • .Net core 使用swagger进行Api管理

        上次我们讲过如何在swagger上隐藏接口,众所周知,swagger是一个强大的api文档工具,可以帮助我们记录文档并且测试接口,也是一个可视化操作接口的工具。

    那么如果我们写的接口非常多的时候怎么办,如何进行分类管理呢,这个时候就需要用到swagger分组功能。

    接下来就介绍如何进行分类:

    首先我们需要在startup类设置中间件。

    在Configure方法中添加:

     app.UseSwaggerUI(c =>
                {
                    c.SwaggerEndpoint("/swagger/Attendance/swagger.json", "Attendance");
                    c.SwaggerEndpoint("/swagger/Salarypage/swagger.json", "Salarypage");
                    c.SwaggerEndpoint("/swagger/Employee/swagger.json", "Employee");
                });

    默认情况只会有安装swagger包之后默认的一条。

     c.SwaggerDoc("v1", new Info { Title = "Demo", Version = "v1" });

    所以我们需要进行分组,这里分了三组。然后在ConfigureServices方法中,配置我们的组名:

    services.AddSwaggerGen(c =>
                {
                    c.SwaggerDoc("Attendance", new Info { Title = "一组", Version = "Attendance" });
                    c.SwaggerDoc("Salarypage", new Info { Title = "二组", Version = "Salarypage" });
                    c.SwaggerDoc("Employee", new Info { Title = "三组", Version = "Employee" });
                    var xmlFile = $"{Assembly.GetEntryAssembly().GetName().Name}.xml";
                    var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
                    c.IncludeXmlComments(xmlPath);
                    c.DocumentFilter<HiddenFilter>();
                });

    这里显而易见分了三组,配置成功之后就可以直接使用了,我们需要在控制器类中设置特性:

    [ApiExplorerSettings(GroupName = "Attendance")]

    就像这样:

        [Route("Employee")]
        [ApiExplorerSettings(GroupName = "Attendance")]
        [Authorize]
        public class EmployeesController : Controller
        {
            private readonly IEmployeeLogicHandler employeeLogicHandler;
    
            public EmployeesController(IEmployeeLogicHandler employeeLogic)
            {
                employeeLogicHandler = employeeLogic;
            }
    
            /// <summary>
            /// 人员管理页面
            /// </summary>
            /// <returns>IActionResult</returns>
            [HttpGet]
            public IActionResult Index()
            {
                return View();
            }
        }

    然后我们就可以查看我们的结果了:

    打开swagger,在地址后面加/swagger就可以直接查看了。

    标红的部分就是分组的信息,这里只是举一个例子,千万不要随意分组,该隐藏的接口还是要隐藏的。

    这是第二组,分组其实非常简单,希望能帮到各位。把项目的接口好好分类,是一个非常好的习惯,有利于提升开发效率和维护,最后还是谢谢观看。

  • 相关阅读:
    C#数组学习
    关于servlet中要写初始化逻辑应该重载有参还是无参的init
    servlet初识servletConfig
    servlet通过响应头Content-Disposition实现文件下载效果
    response中setCharacterEncoding和setContentType的区别
    通过refresh响应头,定时刷新或隔n秒跳转页面
    通过location响应头实现重定向
    三层交换原理
    什么是CLOS架构?
    Cat8 八类网线是什么?与Cat5、Cat6、Cat7网线的区别?
  • 原文地址:https://www.cnblogs.com/Ivan-Wu/p/10864990.html
Copyright © 2011-2022 走看看