配置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文件启动程序即可。

.NET Core配置Swagger相关推荐

  1. .net core在网关中统一配置Swagger

    最近在做微服务的时候,由于我们是采用前后端分离来开发的,提供给前端的直接是Swagger,如果Swagger分布在各个API中,前端查看Swagger的时候非常不便,因此,我们试着将Swagger集中 ...

  2. 关于Asp.net core配置信息读取的源码分析梳理

    概述 我们都知道asp.net core配置信息的读取离不开IConfigurationSource和IConfigurationProvider这两个类,ConfigurationSource可以提 ...

  3. 【朝夕Net社区技术专刊】Core3.1 WebApi集群实战专题-Corre3.1WebApi配置集成日志/配置Swagger...

    欢迎大家阅读<朝夕Net社区技术专刊>第2期 我们致力于.NetCore的推广和落地,为更好的帮助大家学习,方便分享干货,特创此刊!很高兴你能成为首期读者,文末福利不要错过哦!本文通过3大 ...

  4. 使用Entity Framework Core,Swagger和Postman创建ASP.NET Core Web API的分步指南

    目录 介绍 背景 第1步:创建一个新项目 第2步:添加模型类 第3步:使用Entity Framework Core 第4步:添加数据库上下文和控制器 步骤5:在Package Manager控制台中 ...

  5. ASP.NET Core 在 Swagger UI 中显示自定义的 Header Token

    Swagger 是个好东西,对于前后端分离的网站来说,不仅是提高前后端开发人员沟通效率的利器,也大大方便了后端人员测试 API.有时候,API 中可能需要在 Header 中设置认证参数,比如 aut ...

  6. ASP.NET Core配置Kestrel 网址Urls

    ASP.NET Core中如何配置Kestrel Urls呢,大家可能都知道使用UseUrls() 方法来配置. 今天给介绍全面的ASP.NET Core 配置 Urls,使用多种方式配置Urls. ...

  7. ASP.NET Core 配置 - 创建自定义配置提供程序

    ASP.NET Core 配置 - 创建自定义配置提供程序 在本文中,我们将创建一个自定义配置提供程序,从数据库读取我们的配置.我们已经了解了默认配置提供程序的工作方式,现在我们将实现我们自己的自定义 ...

  8. 实现自己的.NET Core配置Provider之Yaml

    YAML是一种更适合人阅读的文件格式,很多大型的项目像Ruby on Rails都选择YAML作为配置文件的格式.如果项目的配置很少,用JSON或YAML没有多大差别.看看rails项目中的配置文件, ...

  9. 实现自己的.NET Core配置Provider之EF

    <10分钟就能学会.NET Core配置>里详细介绍了.NET Core配置的用法,另外我还开源了自定义的配置Provider:EF配置Provider和Yaml配置Provider.本文 ...

最新文章

  1. 用30行代码做一个微信智障机器人
  2. day7 面向对象进阶、socket套接字
  3. Python - 输出格式 (学习小结)
  4. 区块链培训资料(特别是以太坊)
  5. 高德地图自定义点标记大小_Vue:如何在地图上添加自定义覆盖物(点)
  6. 概念验证:玩! 构架
  7. 观察者模式在android网络监控下的运用
  8. 牛客网编程题03--明明的随机数
  9. Kaggle 年度报告出炉:数据科学家年轻高学历,薪资近百万
  10. 淘宝/天猫获得淘宝商品类目 API 返回值说明
  11. Xilinx VIVADO 中 DDR3(AXI4)的使用(3)模块封装
  12. TFN系列超声波探伤仪为什么在众多品牌竞争中脱颖而出
  13. win11怎么进安全模式,win11进入安全模式的方法
  14. C++文件服务器项目—数据库表设计 与 后端接口设计—6
  15. 如何取消服务器自动关机,服务器自动关机求助
  16. python添加高斯白噪声及其原理
  17. 永信至诚助“海南省首届网络安全大赛”决赛圆满收官
  18. (信贷风控七)申请评分卡模型Python实现(图文+代码实现)
  19. tomcat上面出现红色的×
  20. win10安装docker及docker安装镜像

热门文章

  1. 启动/关闭:请指定主机和目标数据库身份证明
  2. 基于ffmpeg的播放器,播放m3u8文件时,seek问题
  3. 仿 Chrome DevTools 的在线JSON美化工具
  4. 电子元器件产业规模:SRM管理平台与供应链管理优化
  5. 5款知乎大佬都说好用的软件,每一个都值得安装
  6. JavaSE-02 Operater运算符
  7. GDC - 《幽灵行动:荒野》地形技术和工具(七)
  8. LeanCloud 推出 10x 程序员专用笔记本
  9. bugku上美丽的烟火解题过程
  10. 抛砖引玉:微信速增好友十法