.NET Core WebAPI集成Swagger作接口管理

什么是Swagger?
Swagger 是一个规范且完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。
Swagger 的目标是对 REST API 定义一个标准且和语言无关的接口,可让人和计算机拥有无须访问源码、文档或网络流量监测就能够发现和理解服务的能力。当经过 Swagger 进行正肯定义,用户能够理解远程服务并使用最少实现逻辑与远程服务进行交互。与为底层编程所实现的接口相似,Swagger 消除了调用服务时可能会有的猜想。程序员

Swagger 有什么优点?
支持 API 自动生成同步的在线文档:使用 Swagger 后能够直接经过代码生成文档,再也不须要本身手动编写接口文档了,对程序员来讲很是方便,能够节约写文档的时间去学习新技术。
提供 Web 页面在线测试 API:光有文档还不够,Swagger 生成的文档还支持在线测试。参数和格式都定好了,直接在界面上输入参数对应的值便可在线测试接口。编程

在.NET Core中如何使用Swagger?
(1)准备工做
建立一个.NET Core WebApi 项目
建立一个Model类库json

(2)在项目中引入Swagger
在WebApi项目中执行命令:Install-package Swashbuckle.AspNetCore
image.png
(3)在StarUp.cs的ConfigureServices中添加代码
`#region Swagger网络

services.AddSwaggerGen(c =>
        {
            c.SwaggerDoc("v1", new Info
            {
                Version = "v1.1.0",
                Title = "Swagger WebAPI",
                Description = "XXX项目API文档",
                TermsOfService = "None",
                Contact = new Swashbuckle.AspNetCore.Swagger.Contact { Name = "XXX项目", Email = "273145719@qq.com"
                , Url = "https://www.cnblogs.com/NBIDataVis/" }
            });
            var basePath = Path.GetDirectoryName(typeof(Program).Assembly.Location);
            //添加接口XML的路径
            var xmlPath = Path.Combine(basePath, "TrySwaggerCore.xml");
            //若是须要显示控制器注释只需将第二个参数设置为true
            c.IncludeXmlComments(xmlPath, true);
        });

#endregion`app

(4)在StarUp.cs的Configure中添加代码
`#region Swagger
app.UseSwagger();
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "ApiDocument V1");
});框架

endregion`

(5)运行后进入/swagger目录 便可查看Swagger已经启用
image.png
image.png学习

问题汇总:
(1)若是须要将WebApi的默认启动页设为Swagger则在Properties中
image.png测试

(2)在这里你们会发现运行后接口的注释并无显示,咱们须要配置注释XML文件
在WebAPI项目上点击右键-》属性-》生成-》XML文档文件
image.png
另外切记此处代码第二个参数须要设置为True,不然将不显示控制器级别的注释,只显示接口注释
image.pngspa

(3)若是你们会发现有了许多警告,强迫症患者看这里,咱们只须要在生成中强制过滤1591的警告便可
image.png3d

下一章给你们介绍Swagger的分组功能用法。