asp.net core 一个中小型项目实战的起手式——Swagger配置
交流群:863563315
一、Swagger是什么
Swagger 是一款RESTFUL接口的、基于YAML、JSON语言的文档在线自动生成、代码自动生成的工具。
二、如何在项目中加入Swagger
- Swagger安装引用
右键Web项目依赖项>管理NuGet程序包>在搜索框输入"Swashbuckle.AspNetCore",然后单击安装
    
- 添加并配置Swagger中间件
首先在Startup类中引入Swagger:
using Swashbuckle.AspNetCore.Swagger;
将 Swagger 生成器添加到ConfigureServices 方法中的服务集合中:
//注册Swagger生成器,定义一个和多个Swagger文档
services.AddSwaggerGen(p =>
{
p.SwaggerDoc("v1", new Info {Title = "数据管理器API文档", Version = "V1"});
});
在Configure方法中,启用中间件为生成的JSON文档和SwaggerUI提供服务:
//启用中间件服务生成Swagger作为JSON终结点
app.UseSwagger();
//启用中间件服务对swagger-ui,指定Swagger JSON终结点
app.UseSwaggerUI(p =>
{
p.SwaggerEndpoint("/swagger/v1/swagger.json", "数据管理器API文档 v1");
});
启动应用,并跳转到 http://localhost:<port>/swagger/v1/swagger.json 生成的描述终结点的文档显示如下json格式。


可在 /swagger 找到 Swagger UI。 通过 Swagger UI 浏览 API文档,如下所示。

- 为接口方法提供注释
首先右键【解决方案资源管理器】中的项目,然后选【属性】
查看“生成”选项卡的【输出】部分下的【XML 文档文件】框
启用 XML 注释后会为未记录的公共类型和成员提供调试信息。如果出现很多警告信息 例如,以下消息指示违反警告代码 1591。可以在进制显示警告中加入警告代码,这样不会再在错误列表中显示1591类型的警告了。

在Swagger注册服务中增加:
//注册Swagger生成器,定义一个和多个Swagger文档
services.AddSwaggerGen(p =>
{
p.SwaggerDoc("v1", new Info {Title = "数据管理器API文档", Version = "V1"}); // 为 Swagger JSON and UI设置xml文档注释路径
var basePath = Path.GetDirectoryName(typeof(Program).Assembly.Location);//获取应用程序所在绝对目录
var xmlPath = Path.Combine(basePath, "DataManager.Web.xml");//此处的文件名要对应到项目属性中生成的xml文件名
p.IncludeXmlComments(xmlPath);
});
在控制器目录下新增一个WebApi测试控制器,测试下效果
    [Route("api/[controller]/[action]")]
    [ApiController]
    public class SwaggerTestController : ControllerBase
    {
        /// <summary>
        /// 这是一个Swagger测试接口
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        public IActionResult Test()
        {
            return new JsonResult(new {key = "Name", value = "test"});
        }
    }
访问/swagger:

好了,今天的在ASP.NET Core WebApi使用Swagger生成api说明文档的教程就到这里了。希望能够对大家学习在ASP.NET Core中使用Swagger生成api文档有所帮助!
asp.net core 一个中小型项目实战的起手式——Swagger配置的更多相关文章
- asp.net core 一个中小型项目实战的起手式——项目搭建与仓储模式下的持久层创建(1)
		常规的中小型项目搭建方式一般是三层架构加上mvc与webapi作为一个主要框架,再加上一些第三方库,例如orm框架(EF.SqlSugar.Dapper等),API文档工具(Swagger)这些的应用 ... 
- Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架
		Asp.Net Core 2.0 项目实战(1) NCMVC开源下载了 Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架 Asp.Ne ... 
- Asp.Net Core 2.0 项目实战(10) 基于cookie登录授权认证并实现前台会员、后台管理员同时登录
		1.登录的实现 登录功能实现起来有哪些常用的方式,大家首先想到的肯定是cookie或session或cookie+session,当然还有其他模式,今天主要探讨一下在Asp.net core 2.0下 ... 
- Asp.Net Core 2.0 项目实战(11) 基于OnActionExecuting全局过滤器,页面操作权限过滤控制到按钮级
		1.权限管理 权限管理的基本定义:百度百科. 基于<Asp.Net Core 2.0 项目实战(10) 基于cookie登录授权认证并实现前台会员.后台管理员同时登录>我们做过了登录认证, ... 
- Asp.Net Core 2.0 项目实战(9) 日志记录,基于Nlog或Microsoft.Extensions.Logging的实现及调用实例
		本文目录 1. Net下日志记录 2. NLog的使用 2.1 添加nuget引用NLog.Web.AspNetCore 2.2 配置文件设置 2.3 依赖配置及调用 ... 
- Asp.Net Core 2.0 项目实战(8)Core下缓存操作、序列化操作、JSON操作等Helper集合类
		本文目录 1. 前沿 2.CacheHelper基于Microsoft.Extensions.Caching.Memory封装 3.XmlHelper快速操作xml文档 4.Serializatio ... 
- Asp.Net Core 2.0 项目实战(7)MD5加密、AES&DES对称加解密
		本文目录 1. 摘要 2. MD5加密封装 3. AES的加密.解密 4. DES加密/解密 5. 总结 1. 摘要 C#中常用的一些加密和解密方案,如:md5加密.RSA加密与解密和DES加密等, ... 
- Asp.Net Core 2.0 项目实战(6)Redis配置、封装帮助类RedisHelper及使用实例
		本文目录 1. 摘要 2. Redis配置 3. RedisHelper 4.使用实例 5. 总结 1. 摘要 由于內存存取速度远高于磁盘读取的特性,为了程序效率提高性能,通常会把常用的不常变动的数 ... 
- Asp.Net Core 2.0 项目实战(4)ADO.NET操作数据库封装、 EF Core操作及实例
		Asp.Net Core 2.0 项目实战(1) NCMVC开源下载了 Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架 Asp.Ne ... 
随机推荐
- leetcode  删除一张表中重复邮箱的数据,并且保留最小id 的 那条
			/* create view testview as SELECT subject,MIN(Id) as id FROM test GROUP BY subject; select * FROM te ... 
- avalon  $computed不起作用?
			computed写的个数,应该是只能一个的,之前写了两个,一个是空,一个里面有数据,那个有数据的不起作用,但是在有数据的里面写一个一个console.log就会起作用,所以将多余的空的computed ... 
- docker_基础用法
			1. docker architecture 2. 命令 
- THOR: Tracking Holistic Object Representations
			THOR: Tracking Holistic Object Representations BMVC 2019 Oral 2019-08-04 10:30:09 Paper: https://arx ... 
- [转]css3自适应布局单位vw,vh你知道多少?
			原文地址:https://www.cnblogs.com/luxiaoxing/p/7544375.html 视口单位(Viewport units) 什么是视口? 在PC端,视口指的是在PC端,指的 ... 
- linux centos7 防止暴力破解
			系统 centos 7.4 系统, 不知道的可以用 cat /etc/redhat-release 查看 利用到了linux 系统的日志,每次我们登陆服务器时,如果有登陆认证失败的情况,会在服务器的/ ... 
- 【翻译】Flink Table Api & SQL — SQL
			本文翻译自官网:SQL https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/sql.html Flink Tab ... 
- SQL查询无限层级结构的所有下级,所有上级(即所有的子孙曾孙等等)
			表名:tb_menu 内容如下: 查询ID为3的所有无限层下级会员 WITH TAS( SELECT * FROM tb_menu WHERE id=3 UNION ALL SELECT a.* F ... 
- 给通过canvas生成的二维码添加logo
			以jquery.qrcode为例来说, 生成二维码代码: 依赖jquery.js, jquery.qrcode.js //计算宽,高,中心坐标,logo大小 var width = 256,heigh ... 
- appium通过index查找目标控件
			2.1 通过判断控件属性获取控件 控件的所有属性都可以用作判断,比如它的text,index,resource-id是否clickable等,例如: 2.1.1 通过文本查找目标控件 1 2 el = ... 
