上次我们讲过如何在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就可以直接查看了。

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

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

最新文章

  1. php热身2:CRUD with Ajax
  2. 160809212田京诚C语言程序设计实验2 选择结构程序设计_进阶
  3. 正则表达式(转自https://segmentfault.com/a/1190000000699097)
  4. Peter&#39;s Hobby
  5. Python面向对象OOP
  6. Android Camera HAL浅析
  7. ubuntu14.04 server ftp 服务安装配置详解
  8. unity零基础开始学习做游戏(四)biu~biu~biu发射子弹打飞机
  9. 已实现乐观锁功能,FreeSql.DbContext 准备起航
  10. linux shell set命令
  11. Windows 支持 OpenSSH 了!
  12. Adjacency matrix based Graph
  13. 《精通Python网络爬虫》
  14. POJ1236或洛谷2746或洛谷2812 Network of Schools
  15. $LCT$初步
  16. 2017-2018-2 《网络对抗技术》 20155302 第二周 Exp1 PC平台逆向破解(5)M
  17. how to use perf
  18. Python奇技淫巧
  19. pandas 中的DataFrame.where()使用
  20. 1503. [NOI2004]郁闷的出纳员【平衡树-splay】

热门文章

  1. [RN] React Native 定义全局变量
  2. pytest--命令行常用参数
  3. SqlServer 快速查看表结构
  4. nginx lnmp之nginx+php
  5. Android Studio 之 Navigation【2.数据的传递】
  6. Redis哨兵、复制、集群的设计原理与区别
  7. [Gamma]Scrum Meeting#10
  8. nginx+keepalived高可用及双主模式【h】
  9. expect脚本自动获取root权限
  10. C#实现ActiveMQ消息队列