一、引用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替換的新知識
