Swagger 版本控制 注释展示(.NET)

news2024/11/26 14:51:15

版本控制

项目创建

以Visual Studio 2022为例,创建Web API项目,如下图所示。
在这里插入图片描述
在创建时勾选启用OpenAPI支持,默认安装Swashbuckle.AspNetCore库,并配置相关信息。
在这里插入图片描述

创建版本枚举类

    /// <summary>
    /// 版本枚举
    /// </summary>
    public enum ApiVersions
    {
        /// <summary>
        /// 第一版本
        /// </summary>
        V1,

        /// <summary>
        /// 第二版本
        /// </summary>
        V2,

        /// <summary>
        /// 第三版本
        /// </summary>
        V3,
    }

修改 Program.cs 配置

builder.Services.AddSwaggerGen(option =>
{
    typeof(ApiVersions).GetEnumNames().ToList().ForEach(version =>
    {
        option.SwaggerDoc(version, new OpenApiInfo()
        {
            Title = $"{version} Api文档",
            Version = version,
            Description = $"通用版本的CoreApi版本{version}"
        });
    });
});

if (app.Environment.IsDevelopment())
{
    app.UseSwagger();
    app.UseSwaggerUI(option =>
    {
        foreach(string version in typeof(ApiVersions).GetEnumNames())
        {
            option.SwaggerEndpoint($"/swagger/{version}/swagger.json", $"版本:{version}");
        }
    });
}

在 Controller 中配置

根据自己的需求,在不同的Controller中配置不同的版本。

//以V1为例
[ApiExplorerSettings(IgnoreApi = false, GroupName = nameof(ApiVersions.V1))]

效果展示

在这里插入图片描述
在这里插入图片描述

控制展示

项目配置

选择项目右键点击 -> 选择属性 -> 选择生成 -> 选择输出 -> 勾选生成包含API文档的文件。如下图所示
在这里插入图片描述
勾选之后进行保存,并将所选项目进行重新生成。

修改 Program.cs 配置

builder.Services.AddSwaggerGen(option =>
{
    //xml文档绝对路径 (项目名称按照实际情况填写)
    var file = Path.Combine(AppContext.BaseDirectory, "项目名称.xml");
    //true:显示控制器层注释
    option.IncludeXmlComments(file, true);
    //对action的名称进行排序,如果有多个,就可以看见效果了
    option.OrderActionsBy(o => o.RelativePath);
});

效果展示

前提:在Controller对应的接口上写注释
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/460719.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

新版Fluent默认保存的h5文件无法用Tecplot打开的解决办法(亲试有效,评论区是重点)

文章目录 Ansys Fluent简介Fluent 输入/出 文件格式新版Fluent的输出压缩文件&#xff08;.cas.h5文件&#xff09;解决办法 Ansys Fluent简介 Ansys Fluent &#xff0c;是国际上比较流行的商用CFD软件包&#xff0c;在美国的市场占有率为60%&#xff0c;凡是和流体、热传递和…

IP地址的分配

一、ip地址的作用 用IP地址来标识Internet的主机&#xff1b;IP协议可以根据路由选择协议提供的路由信息对IP数据报进行转发&#xff0c;直至抵达目的主机。IP地址和MAC地址的匹配&#xff1b;数据链路层使用MAC地址来发送数据帧&#xff0c;因此在实际发送IP报文时&#xff0…

分布式消息队列Kafka(四)- 消费者

1.Kafka消费方式 2.Kafka消费者工作流程 &#xff08;1&#xff09;总体工作流程 &#xff08;2&#xff09;消费者组工作流程 3.消费者API &#xff08;1&#xff09;单个消费者消费 实现代码 package com.zrclass.kafka.consumer; import org.apache.kafka.clients.consum…

【Golang项目实战】手把手教你写一个备忘录程序|附源码——建议收藏

博主简介&#xff1a;努力学习的大一在校计算机专业学生&#xff0c;热爱学习和创作。目前在学习和分享&#xff1a;数据结构、Go&#xff0c;Java等相关知识。博主主页&#xff1a; 是瑶瑶子啦所属专栏: Go语言核心编程近期目标&#xff1a;写好专栏的每一篇文章 前几天瑶瑶子…

0Ω电阻在PCB板中的5大常见作用

在PCB板中&#xff0c;时常见到一些阻值为0Ω的电阻。我们都知道&#xff0c;在电路中&#xff0c;电阻的作用是阻碍电流&#xff0c;而0Ω电阻显然失去了这个作用。那它存在于PCB板中的原因是什么呢&#xff1f;今天我们一探究竟。 1、充当跳线 在电路中&#xff0c;0Ω电阻…

CCF-CSP 2013-12-3 最大的矩形(暴力枚举)

首先我们可以先根据数据范围反推时间复杂度&#xff0c;比如&#xff0c;数据范围n < 1000,我们可以将时间复杂度控制在O(n), O(n)logn 思路上比较容易想到的是枚举所有情况&#xff0c;然后输出面积最大的情况即可 可以在第一重循环枚举i&#xff0c;表示从第i个矩形开始往…

云HIS系统源码,部署云端,支持多租户,实现医疗数据共享与交换

云HIS系统源码&#xff0c;医院信息管理系统源码。采用云端SaaS服务的方式提供&#xff0c;采用前后端分离架构&#xff0c;前端由Angular语言、JavaScript开发&#xff1b;后端使用Java语言开发。 文末获取联系&#xff01; 基于云计算技术的B/S架构的云HIS系统&#xff0c;采…

zynqmp 外接fpga linux内核驱动修改

325t配置: 使用内核自带的linux-xlnx-xilinx-v2021.2/drivers/fpga/xilinx-spi驱动&#xff0c;做serial slave模式&#xff0c;设备树更改如下(根据 linux-xlnx-xilinx-v2021.2/Documentation/devicetree/bindings/fpga/xilinx-slave-serial.txt,修改)slave-serial需要将fpga的…

【Java实战篇】Day13.在线教育网课平台--生成支付二维码与完成支付

文章目录 一、需求&#xff1a;生成支付二维码1、需求分析2、表设计3、接口定义4、接口实现5、完善controller 二、需求&#xff1a;查询支付结果1、需求分析2、表设计与模型类3、接口定义4、接口实现步骤一&#xff1a;查询支付结果步骤二&#xff1a;保存支付结果&#xff08…

控制工程有哪些SCI期刊推荐? - 易智编译EaseEditing

控制工程是一门涵盖广泛的学科&#xff0c;其研究内容涉及控制理论、控制工程应用、自动化技术等多个方面&#xff0c;因此相关的SCI期刊也比较多。以下是一些推荐的控制工程SCI期刊&#xff1a; IEEE Transactions on Automatic Control&#xff1a; 该期刊是自动控制领域顶…

【springcloud微微服务】分布式事务框架Seata使用详解

目录 一、前言 二、事务简介 2.1 原子性 2.2 一致性 2.3 隔离性 2.4 持久性 三、分布式事务场景 3.1 分布式事务起源 3.2 分布式事务典型场景 3.2.1 跨库事务 3.2.2 分库分表 3.2.3 服务化 四、分布式事务常用解决方案 4.1 分布式事务理论基础 4.1.1 2PC两阶段提…

降低风险和最大化成功:如何解决项目管理中的成本差异

作为项目经理&#xff0c;你知道让项目按计划进行并按预算进行对于项目管理的成功至关重要。你可以使用的关键工具之一是成本差异分析。但成本差异到底是什么&#xff0c;如何利用它来发挥优势呢&#xff1f; 定义成本差异 成本差异是项目实际成本与预算或计划成本之间的差异…

Linux shell命令行基础

shell简介 shell 与内核沟通的界面、应用程序等。用于将用户操作传递给内核执行。 shell是面向过程 的若类型的解释性语言&#xff0c;不需要编译即可直接执行&#xff0c;常用于作脚本 Linux中的shell 在/etc/shells文件中 存储Linux包含的shell。 最常用的是bash&#xff0c;…

Docker虚拟化技术

1.3 Docker虚拟化技术概念 Docker是一款轻量级、高性能的虚拟化技术&#xff0c;是目前互联网使用最多的虚拟化技术&#xff0c;Docker虚拟化技术的本质类似集装箱机制&#xff0c;最早集装箱没有出现的时候&#xff0c;码头上有许多搬运的工人在搬运货物&#xff0c;集装箱出…

Karl Guttag:现有Micro LED/LCoS+光波导AR眼镜对比解析

轻量化是未来AR眼镜的发展趋势&#xff0c;为了缩减尺寸&#xff0c;AR眼镜厂商尝试了多种方案&#xff0c;长期来看Micro LED光机在小型化上更有优势&#xff0c;但现阶段LCoS光机的图像表现更好。在CES 2023期间&#xff0c;DigiLens、Lumus、Vuzix、OPPO、Avegant也展出了不…

进程通信(同一主机)

1.概述 进程通信机制包括&#xff1a; 传统的UNIX进程间通信&#xff1a;无名管道、有名管道、信号 System V 进程间通信&#xff1a;消息队列、信号量、共享内存 2.管道通信 2.1无名管道 1.特点 &#xff08;1&#xff09;适用具有亲缘关系的进程 &#xff08;2&#x…

C++高精度减法

高精度减法指的是大整数的相减&#xff0c;大整数是用基本数据类型无法存储其精度的整数&#xff0c;位数不超过10^6&#xff0c;注意是位数&#xff0c;不是数值的大小。 因为其精度超过基本的数据类型规定的大小&#xff0c;所以常规的计算方法是不可以实现的&#xff0c;这…

UE4 架构初识(二)

目录 UE4 引擎学习 一、架构基础 1. Pawn &#xff08;1&#xff09;DefaultPawn &#xff08;2&#xff09;SpectatorPawn &#xff08;3&#xff09;Character 2. AController 3. APlayerState 4. 总结 UE4 引擎学习 一、架构基础 1. Pawn UE也是从Actor中再派生…

Zynq-7000、国产zynq-7000的GPIO控制(二)

本文详细说明一下使用SDK中使用MIO/EMIO作为输入中断 SDK中使用MIO/EMIO作为输入中断 这个使用场景可以扩展到PL的可以通过EMIO或者MIO&#xff0c;告知PS中断来了&#xff0c;需要PS处理一些特定事物&#xff0c;当然也可以连接最简单的按键。 这个可以参考SDK自带例程来实…

Python入门教程+项目实战-11.2节: 元组的操作符

目录 11.2.1 元组的常用操作符 11.2.2 []操作符: 索引访问元组 11.2.3 [:]操作符&#xff1a;元组的切片 11.2.4 操作符&#xff1a;元组的加法 11.2.5 *操作符&#xff1a;元组的乘法 11.2.6 元组的关系运算 11.2.7 in操作符&#xff1a;查找元素 11.2.8 知识要点 11…