ASP.NET Core 2.2 系列【三】集成Swagger
时间:2019-11-22
本文章向大家介绍ASP.NET Core 2.2 系列【三】集成Swagger,主要包括ASP.NET Core 2.2 系列【三】集成Swagger使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Swagger
安装程序包
通过管理 NuGet 程序包安装,搜索Swashbuckle.AspNetCore
配置 Swagger
将 Swagger 添加到 Startup.ConfigureServices 方法中的服务集合中:
1 //注入Swagger服务 2 services.AddSwaggerGen(c => 3 { 4 c.SwaggerDoc("v1", new Info { Title = "My API", Version = "v1" }); 5 });
在 Startup.Configure
方法中,启用中间件为生成的 JSON 文档和 Swagger UI 提供服务
1 //启用Swagger服务 2 app.UseSwagger(); 3 app.UseSwaggerUI(c => 4 { 5 c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1"); 6 c.DefaultModelsExpandDepth(-1); //设置为 - 1 可不显示models 7 c.DocExpansion(DocExpansion.None);//设置为none可折叠所有方法 8 });
运行项目,可在 http://localhost:<port>/swagger
浏览 API文档,如下所示:
如果想把Swagger作为启动页面,可修改launchSettings.json,把 launchUrl设置为 swagger:
1 "IIS Express": { 2 "commandName": "IISExpress", 3 "launchBrowser": true, //是否在浏览器中启动 4 "launchUrl": "swagger", //在浏览器中启动的相对URL 5 "environmentVariables": { //将环境变量设置为键/值对 6 "ASPNETCORE_ENVIRONMENT": "Development" 7 } 8 }
所有的Controller 的方法都是可以在 UI 上面进行测试。点击方法可以展开对应的区域,点击【Try it out】→ 【输入参数】→ 点击【Execute】。
可扩展性
Swagger 文档信息和描述
修改AddSwaggerGen 方法,用来添加文档信息。例如:作者,版权,描述。
1 services.AddSwaggerGen(options => 2 { 3 options.SwaggerDoc("v1", 4 new Info 5 { 6 Version = "v1", 7 Title = "在线接口文档", 8 Description = "一个简单的例子", 9 Contact = new Contact { Name = "TengHao", Email = "tenghao510@qq.com" }, 10 License = new License { Name = "TengHao", Url = "https://blog.csdn.net/weixin_37291339" } 11 }); 12 });
下图展示了 Swagger UI 显示添加的版本信息。
XML注释
【右键项目】→【属性】→ 【生成】→ 【勾选XML 文档文件】注意自己的路径
修改AddSwaggerGen 方法。
备注:IncludeXmlComments方法中的IncludeXmlComments参数控制是否显示控制器注释,默认是false。
1 //注入Swagger服务 2 services.AddSwaggerGen(options => 3 { 4 options.SwaggerDoc("v1", 5 new Info 6 { 7 Version = "v1", 8 Title = "在线接口文档", 9 Description = "一个简单的例子", 10 Contact = new Contact { Name = "TengHao", Email = "tenghao510@qq.com" }, 11 License = new License { Name = "TengHao", Url = "https://blog.csdn.net/weixin_37291339" } 12 }); 13 14 // 为 Swagger JSON and UI设置xml文档注释路径 15 var basePath = Path.GetDirectoryName(typeof(Program).Assembly.Location);//获取应用程序所在目录 16 var xmlPath01 = Path.Combine(basePath, "NetCoreWebApi.xml"); 17 options.IncludeXmlComments(xmlPath01, true); 18 var xmlPath = Path.Combine(basePath, "NetCoreWebApi.Model.xml"); 19 options.IncludeXmlComments(xmlPath); 20 });
运行项目,再看看效果:
原文地址:https://www.cnblogs.com/tenghao510/p/11911756.html
- Ruby OpenSSL 私钥伪造脚本
- 基于 k8s 的 Jenkins 构建集群实践
- Visual C#.Net网络程序开发-Tcp篇(1) 祥细内容:
- 无服务器化的微服务持续交付
- Visual C#.Net网络程序开发-Tcp篇(2) 祥细内容:
- 看你是否够老 – ipman的vxd程序介绍的翻译
- Visual C#.Net网络程序开发-Tcp篇(3) 祥细内容:
- 安全科普:流量劫持能有多大危害?
- OpenSSL心脏出血漏洞全回顾
- Nmap扫描对比工具–libnmap实践
- 如何使用TensorFlow实现神经网络
- 安全科普:详解流量劫持的形成原因
- Office”组合”式漏洞攻击样本分析
- jsp标签小结
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【STM32F429】第6章 RL-TCPnet V7.X底层驱动说明
- 【STM32F407】第6章 RL-TCPnet V7.X底层驱动说明
- LINUX一些面试问题集合
- 【redis6.0.6】redis源码慢慢学,慢慢看 -- 第二天:空间配置(zmalloc)
- URI格式
- 讲通C/C++预编译/条件编译指令 #ifdef,#ifndef,#endif,#define,…
- FreeRTOS静态和动态创建任务
- Jenkins部署Springboot项目
- atoi函数
- 网络字节
- redis学习(五)
- 编译报错原因
- 【Pod Terminating原因追踪系列之三】让docker事件处理罢工的cancel状态码
- C(string.h)字符串操作函数总结
- 指针与数组