首页 > 编程语言 >Asp.net WebApi Swagger Tag 标记分组归纳显示Api接口路由

Asp.net WebApi Swagger Tag 标记分组归纳显示Api接口路由

时间:2023-12-29 11:24:17浏览次数:38  
标签:WebApi Asp string apiDesc groupName Tag 分组 Swagger public

官方文档说明地址   https://swagger.io/docs/specification/2-0/grouping-operations-with-tags/
创建一个自定义的特性类

 public class ControllerGroupAttribute : Attribute
    {
        public ControllerGroupAttribute(string groupName)
        {
            if (string.IsNullOrWhiteSpace(groupName))
            {
                throw new ArgumentNullException("分组信息不能为空");
            }
            GroupName = groupName;
        }

        /// <summary>
        /// 
        /// </summary>
        public string GroupName { get; set; }
    }
配置Swagger的分组规则

GlobalConfiguration.Configuration
                .EnableSwagger(c =>
                    {

                        c.SingleApiVersion("v1", "SwaggerGroupTest");
                        c.IncludeXmlComments(GetXmlCommentsPath());
                        c.GroupActionsBy(apiDesc => apiDesc.GetControllerAndActionAttributes<ControllerGroupAttribute>().Any()
                        ? apiDesc.GetControllerAndActionAttributes<ControllerGroupAttribute>().First().GroupName : apiDesc.ActionDescriptor.ControllerDescriptor.ControllerName
                        );                    
                    })
                .EnableSwaggerUi(c =>
                    {
                        
                    });

下图为Swagger.Config的代码图

接下来就是使用特性 标注在Controller 上或者Action上 去进行分组
[ControllerGroupAttribute("jazgh")]
namespace SwaggerGroupTest.Controllers
{
    /// <summary>
    /// 
    /// </summary>
    [Route("api/User/{action}")]
    
    public class UserController : ApiController
    {
        [ControllerGroup("nczgk")]
        /// <summary>
        /// 用户列表
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        public IHttpActionResult PeopleList()
        {
            return Ok(new string[] { "张三", "李四", "王五" });
        }
        /// <summary>
        /// 打招呼
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        public IHttpActionResult SayHello()
        {
            return Ok("Hello");
        }
    }
}

效果图如下

 

标注在Action上的会归类到单独的tag 标记中  没有就按照原有的Controller 名称分类  

实际得到的json 描述如上图所示 和官网文档说的使用tag标记符合  官网文档地址在文章最开头

 

 

标签:WebApi,Asp,string,apiDesc,groupName,Tag,分组,Swagger,public
From: https://www.cnblogs.com/litianfeng-net/p/17934395.html

相关文章

  • 无涯教程-Java NIO - DataGramChannel
    JavaNIO数据报用作通道,可以通过较少连接的协议发送和接收UDP数据包。默认情况下,数据报通道处于阻塞状态,也可以在非阻塞模式下使用。为了使其成为非阻塞状态,无涯教程可以使用configureBlocking(false)方法。可以通过调用名为open()的静态方法之一来打开DataGram通道,该方法也可......
  • ASP.NET Core 授权一(简单的Cookie)
    Cookie1.HTTP无连接无状态,Cookie和Session就是解决此问题。2.客户端向服务器端发送一个请求的时,服务端向客户端发送一个Cookie然后浏览器将Cookie保存,之后每次HTTP请求浏览器都会将Cookie发送给服务器端,需要衡量把什么数据放到cookie中,很多数据并不是每次请求都需要发给服务端,......
  • ASP.NET Core 内置异常中间件的三种方法
    方法一app.UseExceptionHandler(configure=>{configure.Run(asynccontext=>{varexcHandler=context.Features.Get<IExceptionHandlerPathFeature>();varex=excHandler.Error;if(ex!=null){conte......
  • Oracle 中 LISTAGG 函数的介绍以及使用
    LISTAGG函数介绍listagg函数是Oracle11.2推出的新特性。其主要功能类似于wmsys.wm_concat函数,即将数据分组后,把指定列的数据再通过指定符号合并。LISTAGG使用listagg函数有两个参数: 1、要合并的列名 2、自定义连接符号☆LISTAGG函数既是分析函数,也是聚......
  • 02 USB_JTAG驱动安装
    1概述一般安装vitis(vivado)的过程中勾选了安装JTAGcable驱动就会默认安装好JTAG驱动,但是如果vivado无法正确识别到JTAG,那么可以试下重新手动安装驱动2准备工作安装驱动前,必须关闭所有的vivado,vitis-sdk并且拔掉USBJTAG以免导致安装失败3USB_JTAG驱动安装找到vivado安......
  • AspNetCore的单元测试
    一、单元测试项目如何创建VisualStudio新建项目,项目类型选择测试。 可以看到有许多选项,都大差不差。这里选择xUnit。项目名使用要测试的项目名加上“.Tests”后缀。二、进行单元测试首先明确测试对象,通常是针对一个类型进行测试,新建Test类,类名为测试对象的类名加上“Test......
  • 在 IIS 上生成经典 ASP 网站
    场景:在IIS上生成经典ASP网站本文档将指导你完成安装IIS和配置经典ASP网站的过程。经典ASP是服务器端脚本环境,可用于创建和运行动态Web应用程序。借助ASP,你可以将HTML页面、脚本命令和COM组件组合在一起,从而创建易于开发和修改的交互式网页。经典ASP是ASP.......
  • ASP.NET Core 8 的内存占用可以更低吗?
    MaoniStephens是.NET垃圾回收器(GC)的首席架构师之一,她在2023年8月份发表了一篇关于.NETGC新功能的博客文章,该功能称为DynamicAdaptionToApplicationSizes(DATAS),该功能将随.NET8一起提供。此功能将在应用运行时自动增加或减少服务器GC模式下的托管堆数量。它减少......
  • 漏洞复现:easy file sharing server漏洞与Metasploit应用
    一、漏洞渗透测试1、靶机(Windows)安装easyfilesharingserver,该服务存在漏洞。2、利用Nmap扫描发现靶机(Windows)运行了该服务。3、利用该漏洞,使得靶机运行计算器。一、打开easyfilesharingserver 二、kali上nmap扫描端口 发现80和443端口提供该服务扫描漏洞 ......
  • Stable Diffusion(SD-Webui)tag快速提权(降权)
    StableDiffusion(SD-Webui)tag的快速提权|降权:很简单:  1.选中tag(只要光标在你分词里面就行)  2.CRTRL+上下方向键(向上默认提0.1,向下默认减.0.1,当权为1时候会帮你自动消掉括号)完事请注意:中文逗号默认会被视为tag一部分!判断中英文逗号最简单的办法是看有没有贴贴,俩遍都......