news 2026/7/4 9:57:51

.net core webapi 添加 swagger 调试

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
.net core webapi 添加 swagger 调试

.net core webapi 添加 swagger 调试

开发环境:Visual Studio 2019

为解决前后端苦于接口文档与实际不一致、维护和更新文档的耗时费力等问题,swagger应运而生,同时也解决了接口测试问题。话不多说,直接说明应用步骤。

  1. 新建一个ASP.NET Core Web API应用程序,版本选择.ASP.NET Core 3.1;
  2. 通过Nuget安装包:Swashbuckle.AspNetCore,当前示例版本5.5.0;
  3. 在Startup类的ConfigureServices方法内添加以下注入代码:
services.AddSwaggerGen(c=>{c.SwaggerDoc("v1",newOpenApiInfo{Title="My API",Version="v1",Description="API文档描述",Contact=newOpenApiContact{Email="5007032@qq.com",Name="测试项目",//Url = new Uri("http://t.abc.com/")},License=newOpenApiLicense{Name="BROOKE许可证",//Url = new Uri("http://t.abc.com/")}});});
  1. Startup类的Configure方法添加如下代码:
//配置Swaggerapp.UseSwagger();app.UseSwaggerUI(c=>{c.SwaggerEndpoint("/swagger/v1/swagger.json","My API V1");c.RoutePrefix="api";// 如果设为空,访问路径就是根域名/index.html,设置为空,表示直接在根域名访问;想换一个路径,直接写名字即可,比如直接写c.RoutePrefix = "swagger"; 则访问路径为 根域名/swagger/index.html});
  1. Ctrl+F5进入浏览,按上述配置修改路径为:http://localhost:***/api/index.html,即可看到Swagger页面:


然而到这里还没完,相关接口的注释说明我们看不到,通过配置XML文件的方式继续调整代码如下,新增代码见加粗部分:

services.AddSwaggerGen(c=>{c.SwaggerDoc("v1",newOpenApiInfo{Title="My API",Version="v1",Description="API文档描述",Contact=newOpenApiContact{Email="5007032@qq.com",Name="测试项目",//Url = new Uri("http://t.abc.com/")},License=newOpenApiLicense{Name="BROOKE许可证",//Url = new Uri("http://t.abc.com/")}});varxmlFile=$"{Assembly.GetExecutingAssembly().GetName().Name}.xml";varxmlPath=Path.Combine(AppContext.BaseDirectory,xmlFile);c.IncludeXmlComments(xmlPath);});

上述代码通过反射生成与Web API项目相匹配的XML文件名,AppContext.BaseDirectory属性用于构造 XML 文件的路径,关于OpenApiInfo内的配置参数用于文档的一些描述,在此不作过多说明。
然后右键Web API项目、属性、生成,配置XML文档的输出路径,以及取消不必要的XML注释警告提醒(增加1591):

这样,我们以三斜杠(///)方式给类方法属性等相关代码添加注释后,刷新Swagger页面,即可看到注释说明。
如果不想将XML文件输出为debug下的目录,譬如想要放在项目根目录(但不要修改成磁盘绝对路径),可调整相关代码如下,xml文件的名字也可以改成自己想要的:

varbasePath=Path.GetDirectoryName(typeof(Program).Assembly.Location);//获取应用程序所在目录varxmlPath=Path.Combine(basePath,"CoreAPI_Demo.xml");c.IncludeXmlComments(xmlPath,true);

同时,调整项目生成的XML文档文件路径为:…\CoreAPI_Demo\CoreAPI_Demo.xml

  1. 隐藏相关接口
    对于不想暴漏给Swagger展示的接口,我们可以给相关Controller或Action头加上:[ApiExplorerSettings(IgnoreApi = true)]

  2. 调整系统默认输出路径
    项目启动后,默认会访问自带的weatherforecast,如果想调整为其他路径,譬如打开后直接访问Swagger文档,那么调整Properties目录下的launchSettings.json文件,修改launchUrl值为api(前述配置的RoutePrefix值):

{"$schema":"http://json.schemastore.org/launchsettings.json","iisSettings":{"windowsAuthentication":false,"anonymousAuthentication":true,"iisExpress":{"applicationUrl":"http://localhost:7864","sslPort":0}},"profiles":{"IIS Express":{"commandName":"IISExpress","launchBrowser":true,"launchUrl":"api","environmentVariables":{"ASPNETCORE_ENVIRONMENT":"Development"}},"CoreApi_Demo":{"commandName":"Project","launchBrowser":true,"launchUrl":"api","applicationUrl":"http://localhost:5000","environmentVariables":{"ASPNETCORE_ENVIRONMENT":"Development"}}}}

原文地址: https://wuyaogexing.com/70/1138699.html#_label0

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/4 9:57:02

融云荣获「2023 中国数字生态通信领军企业」奖

融云北极星如何协助开发者排查问题和预警风险? 8月17日直播课,点击上方报名~ 由 B.P 商业伙伴主办的“2023 数字生态大会”于 8 月 4 日在京举行,融云携数智办公解决方案受邀参展,并获“2023 中国数字生态通信领军企业”奖。关注【…

作者头像 李华
网站建设 2026/7/4 9:56:21

Vue3-Eslint配合prettier完成代码风格配置

前提:创建项目时勾选了prettier和eslint 若未,请参考Eslint:已有vue2项目添加eslint自动格式化,Eslint (standard) Husky Lint-stagedprettier_vue2 eslint-CSDN博客 prettier风格配置 官网:https://prettier.io Eslint&…

作者头像 李华
网站建设 2026/7/4 9:56:27

AppShark静态污点分析:Android应用安全深度检测实战指南

1. 项目概述:为什么我们需要AppShark这样的工具?在Android应用开发与安全评估的日常工作中,我们常常面临一个核心矛盾:应用的功能迭代越来越快,但安全漏洞的发现和修复却往往滞后。传统的动态测试(如Fuzzin…

作者头像 李华
网站建设 2026/7/4 9:53:12

Dify大模型接入实战:从云端API到本地部署的完整指南

你刚把 Dify 部署好,看着清爽的界面,心想:“这下好了,可以大展拳脚了。” 但当你兴冲冲地准备接入第一个大模型时,却发现事情没那么简单。是直接填个 API Key 就行了吗?为什么我的本地模型连不上&#xff1…

作者头像 李华
网站建设 2026/7/4 9:53:02

三步搞定跨语言障碍:STranslate翻译工具完全指南

三步搞定跨语言障碍:STranslate翻译工具完全指南 【免费下载链接】STranslate A ready-to-go translation ocr tool developed with WPF/WPF 开发的一款即用即走的翻译、OCR工具 项目地址: https://gitcode.com/gh_mirrors/st/STranslate 还在为看不懂外文文…

作者头像 李华
网站建设 2026/7/4 9:53:05

AI 学习路径推荐:别把薄弱点变成焦虑清单

AI 学习路径推荐:别把薄弱点变成焦虑清单 刷题久了,很容易发现自己哪里都薄弱:DP 不稳,图论害怕,字符串忘模板,二分边界老写错。AI 学习路径推荐如果只列一堆薄弱点,很快就变成焦虑清单。真正有…

作者头像 李华