.NET Core配置Swagger

news/2024/2/21 10:26:43

配置Swagger主要方便测试接口

无论是前端还是后端开发,都或多或少地被接口文档折磨过。前端经常抱怨后端给的接口文档与实际情况不一致。后端又觉得编写及维护接口文档会耗费不少精力,经常来不及更新。其实无论是前端调用后端,还是后端调用后端,都期望有一个好的接口文档。但是这个接口文档对于程序员来说,就跟注释一样,经常会抱怨别人写的代码没有写注释,然而自己写起代码起来,最讨厌的,也是写注释。所以仅仅只通过强制来规范大家是不够的,随着时间推移,版本迭代,接口文档往往很容易就跟不上代码了。发现了痛点就要去找解决方案,解决方案用的人多了,就成了标准的规范,这就是Swagger。

1.创建.NET Core API 项目

我用的开发工具是Visual Studio 2022,选择如下模板创建即可。
在这里插入图片描述

2.安装Swashbuckle.AspNetCore包

打开NuGet界面,搜索Swashbuckle.AspNetCore,安装即可。
在这里插入图片描述

3.添加Swaggers文件

Swaggers文件下载链接
提取码:2g9d
在这里插入图片描述
将下载的文件放到根目录,如下所示:
在这里插入图片描述

4.修改Program.cs文件

新建的.NET Core API 项目中Program.cs如下:
在这里插入图片描述
修改builder.Services.AddSwaggerGen();如下:

builder.Services.AddSwaggerGen(c =>
{c.SwaggerDoc("1.0", new OpenApiInfo{Version = "1.0",Title = "WebApplication1 接口文档",Description = "Documents for WebApplication1,用于三方接口调用",Contact = new OpenApiContact { Name = "测试", Email = "ceshi@qq.com" }});c.SwaggerDoc("cs", new Info { Title = "测试接口v1.0", Version = "1.0" });c.DocInclusionPredicate((docName, apiDes) =>{if (!apiDes.TryGetMethodInfo(out MethodInfo method))return false;/*使用ApiExplorerSettingsAttribute里面的GroupName进行特性标识* DeclaringType只能获取controller上的特性* 我们这里是想以action的特性为主* */var version = method.DeclaringType.GetCustomAttributes(true).OfType<ApiExplorerSettingsAttribute>().Select(m => m.GroupName);if (docName == "v1" && !version.Any())return true;//这里获取action的特性var actionVersion = method.GetCustomAttributes(true).OfType<ApiExplorerSettingsAttribute>().Select(m => m.GroupName);if (actionVersion.Any())return actionVersion.Any(v => v == docName);return version.Any(v => v == docName);});c.IgnoreObsoleteProperties();c.IgnoreObsoleteActions();c.DocumentFilter<HiddenApiFilter>();
});

修改app.UseSwaggerUI();如下:

app.UseSwaggerUI(c =>
{c.ShowExtensions();c.SwaggerEndpoint("/swagger/cs/swagger.json", "测试接口v1.0");
});

5.编写接口

打开控制器,[HttpGet(Name = "")]定义接口名,[ApiExplorerSettings(GroupName = "")]定义接口组
在这里插入图片描述

6.运行

项目启动如下所示,点击Try it out即可测试,Parameters即入参,Responses即出参。
在这里插入图片描述

7.发布

打开程序包管理控制台,发布命令如下(项目正在运行无法发布):

dotnet publish -o release

在这里插入图片描述
运行命令后会生成一个release文件夹。
在这里插入图片描述
打开release文件夹下的exe文件启动程序即可。


http://www.ppmy.cn/news/319672.html

相关文章

ASP.NET Core 解决控制台输出日志内容前面[40m等乱码字符

在默认我写了一个 WPF 程序去做管理 ASP.NET Core 进程的日志的时候&#xff0c;重定向输出的内容里面每一行前面都添加了很多乱码字符串。其实这是 ASP.NET Core 控制台的颜色字符&#xff0c;解决方法是禁用控制台颜色 在看到重定向的输出里面包含以下乱码字符 &#xfffd;[…

w3m的使用方法

1.安装 $sudo apt-get install w3m-img w3m 2.启动吧 $w3m www.google.cn 你就会看到熟悉的google主页了 3.一些常用的快捷键 H 显示帮助 q 退出&#xff0c;会有提示的 j,k,l,h 移动光标&#xff0c;就像vim中一样 J/K 向下/向上滚屏 < > 左右滚屏 在文本框里press Ente…

联想微型计算机m4500q,小身材大能量 ThinkCentre M4500q评测

联想在2012年六月底召开的ThinkCentre M商用新品发布会上,推出了型号为M4350q的迷你商用电脑,1升超小体积机箱配上强大的桌面级酷睿i处理器,让我们改变了对迷你电脑,对商用电脑的传统认知。 时隔两年之后,我们终于迎来了该系列的后续之作——ThinkCentre M4500q。这款产品…

Git提交去除^M

转自&#xff1a;HalfWater&#xff1b;链接&#xff1a;https://www.cnblogs.com/sdgf/p/6237847.html 一、背景 在各操作系统下&#xff0c;文本文件所使用的换行符是不一样的。UNIX/Linux 使用的是 0x0A&#xff08;LF&#xff09;&#xff0c;早期的 Mac OS 使用的是0x0D&…

core i3、core m、atom x7之间的性能区别有多大 ?

i3也有很多型号&#xff0c;低电压的和标准电压的还有不小差距呢。就当i3是低电压的&#xff0c;那core m由于可以睿频到2.6G&#xff0c;i3普遍在1.7G左右。所以睿频状态下core m要强20%以上。atom x7大概和i3多核性能差不多&#xff0c;但是由于是4核心单核性能非常弱&#x…

intel 酷睿core系列cpu的类型:U M H HQ MQ

相对于笔记本来说。一般我们说的intel系列cpu是指应用于desktop桌面版&#xff0c;embedded嵌入式版, mobile移动版 桌面版和移动版cpu对比 http://tieba.baidu.com/p/5771965156 cpu大全 http://tieba.baidu.com/p/6055792431 desktop桌面版 功耗11W-180W 台式机处理器一般用了…

一份干货|mCore虽小,五脏俱全

转自&#xff1a;https://jiaxing.19lou.com/board-53011512526634962-thread-48281514511127281-1.html http://bbs.elecfans.com/jishu_546527_1_1.html akeblock金属机器人是适合8-14周岁孩子的带有金属感的机器人&#xff0c;须要学员用螺丝刀配合完成&#xff0c;在配合…

ARM Cortex-M处理器详解

ARM Cortex-M处理器家族现在有8款处理器成员。在本文中&#xff0c;我们会比较Cortex-M系列处理器之间的产品特性&#xff0c;重点讲述如何根据产品应用选择正确的Cortex-M处理器。本文中会详细的对照Cortex-M 系列处理器的指令集和高级中断处理能力&#xff0c;以及 SoC系统级…

3·15晚会曝光上海氪信、招财旺旺SDK包泄露隐私 后台上传交易验证码敏感信息

来源 | 央视 7月16日&#xff0c;央视315晚会曝光国美易卡、美的空调遥控器、姨妈日历、银码头等50多款软件中内嵌的SDK包读取、上传用户隐私问题。上海氪信信息技术有限公司、北京招财旺旺信息技术有限公司开发的SDK插件&#xff0c;在后台读取电话号码、通讯录、短信记录、应…

关于艺术涂料的知识你都知道哪些?

关于艺术涂料的知识你都知道哪些&#xff1f; 艺术涂料是一种新型的墙面装饰艺术材料&#xff0c;最早起源于欧洲。如今&#xff0c;加上现代高科技的处理工艺&#xff0c;使产品无毒&#xff0c;环保&#xff0c;同时还具备防水&#xff0c;防尘&#xff0c;阻燃等功能&#x…

用 Python 给全球女神颜值排个序

点击上方“码农突围”&#xff0c;马上关注&#xff0c;每天上午8:50准时推送 这里是码农充电第一站&#xff0c;回复“666”&#xff0c;获取一份专属大礼包 真爱&#xff0c;请设置“星标”或点个“在看” 作者 | 数据森麟 来源 | 数据森麟&#xff08;ID: shujusenlin&#…

官宣:Python 3.8正式发布!来看看有哪些新功能

点击上方“码农突围”&#xff0c;马上关注&#xff0c;每天上午8:50准时推送 这里是码农充电第一站&#xff0c;回复“666”&#xff0c;获取一份专属大礼包 真爱&#xff0c;请设置“星标”或点个“在看” 来源&#xff1a;.python.org 编辑&#xff1a;肖琴&#xff0c;转自…

Python用不好?终于有官方中文文档啦

点击上方“码农突围”&#xff0c;马上关注 这里是码农充电第一站&#xff0c;回复“666”&#xff0c;获取一份专属大礼包 真爱&#xff0c;请设置“星标”或点个“在看” 作者&#xff1a;机器之心 参与&#xff1a;思源 | 编辑&#xff1a;玲玲 来源&#xff1a;https://dw…

用数据告诉你高考最难的省份是哪里!

点上方“菜鸟学Python”&#xff0c;选择“星标” 490篇原创干货&#xff0c;第一时间送达不同省份的高考难度&#xff0c;一直是一个争议严重的问题。 每个地方的人&#xff0c;都会觉得自己是比较难的那一个。因为其实不管在哪里&#xff0c;高考都是件不容易的事情。 高考录…

互联网人提高效率必备软件合集

如果需要转载请注明出处。如果觉得有用,欢迎点赞和收藏 人和人的差距多半不是智力的差距,而是工具应用和学习方法的差距,因为人是很渺小的,能够让人强大的就是这些工具,佛法中的佛也都拥有趁手的工具,叫做法器,在他们降妖除魔的时候,需要这些法器帮助他们更高效的完成任…

如何教老婆学Python?

点击上方“码农突围”&#xff0c;马上关注 这里是码农充电第一站&#xff0c;回复“666”&#xff0c;获取一份专属大礼包 真爱&#xff0c;请设置“星标”或点个“在看” 来源&#xff1a;Python技术之巅 什么是code? code就就是一种语言&#xff0c;一种计算机能读懂的语言…

别死写代码,这 25 条比涨工资都重要

点击上方“码农突围”&#xff0c;马上关注&#xff0c;每天早上8:50准时推送 真爱&#xff0c;请置顶或星标 来源&#xff1a;http://rrd.me/eucMA 如果每个程序开发人员都只是周而复始地写代码&#xff0c;想必编程的工作就会让很多程序员发狂。那么如何在枯燥的工作中寻找乐…

用Python爬取王者农药英雄皮肤

0.引言 作为一款现象级游戏&#xff0c;王者荣耀&#xff0c;想必大家都玩过或听过&#xff0c;游戏里中各式各样的英雄&#xff0c;每款皮肤都非常精美&#xff0c;用做电脑壁纸再合适不过了。本篇就来教大家如何使用Python来爬取这些精美的英雄皮肤。 1.环境 操作系统&…

Here I am——对话CIO(上海站)

前言&#xff1a; 6月18号傍晚&#xff0c;很有幸&#xff0c;接到了51cto客服的电话以及邀请函通知&#xff0c;通知参加上海站51cto媒体举办的线下沙龙——对话首席信息官&#xff0c;本期话题是‘新技术浪潮下企业IT的优化与转型’。这将是一个分享、互动、自由交流的平台。…

#ubuntu# #常用工具#

indicator-sysmonitor ubuntu 16.04电脑运行时&#xff0c;经常出现卡机现象&#xff0c;速度慢的情况。可以安装indicator-sysmonitor用来显示cpu、内存、网速系统资源消耗 效果图如下&#xff1a; 安装 sudo add-apt-repository ppa:fossfreedom/indicator-sysmonitor sudo …
最新文章