一、引用sqlsugar步骤
1.点击工具→nuget包管理器→管理解决方案的nuget程序包,搜索SqlSugarCore并下载安装
2.新增Config类用于获取存放配置文件里AppSetting的内容;
public class Config { public static Dictionary<string, string> AppSettings { get; set; } }
3.新建DBContext类,用来初始化SqlSugarClient
public class DBContext { private string connectionString = null; public DBContext() : this(Config.AppSettings["DBConnection"]) { } public DBContext(string connectionString) { this.connectionString = connectionString; this.Database = new SqlSugarClient(new ConnectionConfig() { ConnectionString = this.connectionString, DbType = DbType.Oracle, IsAutoCloseConnection = true, InitKeyType = InitKeyType.Attribute }); this.Database.Ado.IsEnableLogEvent = true; this.Database.Aop.OnLogExecuting = (sql, pars) => //SQL执行前事件 { }; this.Database.Aop.OnError = (exp) =>//执行SQL 错误事件 { }; this.Database.Aop.OnDiffLogEvent = (it) => { }; this.Database.Aop.OnLogExecuted = (sql, pars) => //SQL执行完事件 { }; } public SqlSugarClient Database { get; private set; } }
注意:在nuget下载SqlSugar的时候要选择SqlSugarCore,因为我们用的是.net Core平台,不然会报”你的应用进入了中断状态,但无任何代码显示,因为所有线程之前都在执行外部代码(通常为系统或框架代码)”的错误。
获取配置文件内容的方式:
在ConfigureServices方法中加入这段代码:
var appSettings = Configuration.GetSection("AppSettings"); if (appSettings != null) { if (Config.AppSettings == null) Config.AppSettings = new Dictionary<string, string>(); foreach (var item in appSettings.GetChildren()) { Config.AppSettings.Add(item.Key, item.Value); } }
至此sqlsugar引用完成。
二、配置swagger步骤
1.点击工具→nuget包管理器→管理解决方案的nuget程序包,搜索Swashbuckle.AspNetCore下载并安装。
或者使用程序包管理器控制台,输入如下命令:PM> Install-Package Swashbuckle.AspNetCore -Version 5.0.0-rc4
2.在StartUp.cs类里面的ConfigureServices方法中添加如下代码:
services.AddSwaggerGen(m => { m.SwaggerDoc("version6.2.3", new OpenApiInfo { Title = "swaggerProject", Version = "version6.2.3" }); });
3.在StartUp.cs类里面的Configure方法中添加如下代码,使用中间件:
app.UseSwagger(); app.UseSwaggerUI(m => { m.SwaggerEndpoint("/Swagger/version6.2.3/swagger.json", "swaggerProject"); });
注意事项:
1.ConfigureServices和Configure里面配置的内容,版本号和名称都是自己随意命名的,但是版本号和名称要保持一致;比如version6.2.3和swaggerProject;
2.swagger部署在iis上时应部署为网站,不要是应用程序否则swagger页面打不开;
4.修改项目启动初始路径
或者在launchSettings.json文件里直接修改launchUrl的值。
5.至此,swagger配置完成。Ctrl+f5查看效果。
6.给swagger页面配置中文注释:
选中刚才创建的Api项目,右键>属性(Mac里叫选项),勾选生成XML文档,这个是用来生成为Swagger所用的描述信息。
在之前配置swagger服务添加如下代码获取注释信息
// 加载程序集的xml描述文档 var baseDirectory = System.AppDomain.CurrentDomain.BaseDirectory; var xmlFile = System.AppDomain.CurrentDomain.FriendlyName + ".xml"; var xmlPath = Path.Combine(baseDirectory, xmlFile); m.IncludeXmlComments(xmlPath);
在方法或者控制器上加上注释,swagger页面会显示相对应的注释。
上图我们看到,控制器和方法都给了注释,但是swagger页面上只能看到方法的注释,看不到控制器的注释,这时我们需要在Startup.cs的ConfigureServices方法中改个参数。
再运行就会看到controller的注释了。
7.路由配置
如图,在控制器中新增一个方法运行,swagger页面报错。这时我们需注意controller的路由设置。
将控制器路由配置成控制器/方法,即[Route("[controller]/[action]")],运行成功。
8.忽视Swagger注释警告
启用XML 注释后,对于没有给注释的方法出现很多警告信息 例如,以下消息指示违反警告代码 1591。
方法或者控制器等会出现波浪线。
如果你不想每一个方法都这么加注释,可以这么配置,在当前项目进行配置,可以忽略警告,记得在后边加上分号 ;1591
警告和波浪线消失了。
三、配置swagger常见错误
在Swagger配置的时候经常莫名其妙地看不到接口列表,这里总结一下几个主要的问题:
1.找不到文件
在浏览器 F12 →console控制台里面会看到错误信息。
发现是404,找不到指定的文件,可能是因为一下原因:
这是因为接口json文档定义和调用不是一个
(1)定义: ConfigureServices方法中的 services.AddSwaggerGen 注册的一个名字 m.SwaggerDoc("version6", new OpenApiInfo { Title = "swaggerProject", Version = "version6.2.3" });
(2)调用: Configure 方法中的 app.UseSwaggerUI(m => { m.SwaggerEndpoint("/Swagger/version6.2.3/swagger.json", "swaggerProject"); }); 看看两者是否一致
这个原因其实就是我们上面文档配置swagger流程的第三点里面的注意事项:
2.接口请求的方式不明确:少了[httpget]、[httpPost]等,导致无法解析
总结:
1、至此,我们sqlsugar和swagger的引用算是成功了,通过这一篇的整体学习,我们知道了怎样更好的使用Swagger进行开发接口文档,更加方便快捷的使用。
2、下一篇我们将学习.NET Core 3.1下 AutoFac内置DI替换的新知识