.Net core 使用swagger进行Api管理

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

那么若是咱们写的接口很是多的时候怎么办,如何进行分类管理呢,这个时候就须要用到swagger分组功能。api

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

首先咱们须要在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包以后默认的一条。spa

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

因此咱们须要进行分组,这里分了三组。而后在ConfigureServices方法中,配置咱们的组名:3d

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>();
            });

这里显而易见分了三组,配置成功以后就能够直接使用了,咱们须要在控制器类中设置特性:code

[ApiExplorerSettings(GroupName = "Attendance")]

就像这样:xml

    [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就能够直接查看了。

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

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