一、安裝
新建一個沒有身份驗證的mvc項目 - SwaggerMvc5Demo,然后添加一個名為Remote(自定義)且包含基礎讀寫(不想手寫)的ApiController


使用以下方法來添加 Swashbuckle:
- 從“程序包管理器控制台”窗口:Install-Package Swashbuckle -Version 5.6.0
- 從“管理 NuGet 程序包”對話框中:
- 右鍵單擊“解決方案資源管理器” > “管理 NuGet 包”中的項目
- 將“包源”設置為“nuget.org”
- 在搜索框中輸入“Swashbuckle”
- 從“瀏覽”選項卡中選擇“Swashbuckle”包,然后單擊“安裝”
二、配置
1.項目屬性->勾選生成xml文檔文件


2.添加導航鏈接
在_Layout.cshtml文件中添加代碼
<li>@Html.ActionLink("Swagger Help", "", "Swagger", new { area = "" }, null)</li>
3.修改SwaggerConfig.cs文件
安裝完成后,在文件夾App_Start自動生成一個配置文件 swagger.config。這里可以做多版本控制,定義擴展功能,自定義顯示ui的樣式腳本,可以配置過濾、權限等。
例如:
(1)為接口添加xml注釋
string path = string.Format("{0}/bin/SwaggerMvc5Demo.XML", System.AppDomain.CurrentDomain.BaseDirectory);
c.IncludeXmlComments(path);
使用前


使用后


(2)使用特性 [Obsolete]
在config中 開啟 c.IgnoreObsoleteProperties();


三、調用
1.直接調用
只要輸入參數id,即可調用,非常方便


2.AutoRest
AutoRest (
https://github.com/Azure/AutoRest), 簡單來說,就是一個EXE工具,可以根據Swagger的結構生成服務的客戶端,這個客戶端可以讓你像調用本地方法一樣調用服務,方法內部包裝了Http請求。
擴展:ABP集成swagger
四、錯誤記錄
swagger出現問題:not supported by swagger 2.0
一個controller中只能有一個HttpGet請求,多了就會報錯。建議減少重載方法,將其他Get方法分開
如果在swagger.config中加上c.ResolveConflictingActions(apiDescriptions => apiDescriptions.FirstOrDefault());則會只顯示第一個get方法
參考文章: