ASP.NET WEBAPI 使用Swagger生成API文檔

1、安裝

新建一個沒有身份驗證的mvc項目 - SwaggerMvc5Demo,而後添加一個名爲Remote(自定義)且包含基礎讀寫(不想手寫)的ApiController
 
使用如下方法來添加 Swashbuckle:
  • 從「程序包管理器控制檯」窗口:Install-Package Swashbuckle -Version 5.6.0
  • 從「管理 NuGet 程序包」對話框中:
    • 右鍵單擊「解決方案資源管理器」 > 「管理 NuGet 包」中的項目
    • 將「包源」設置爲「nuget.org」
    • 在搜索框中輸入「Swashbuckle」
    • 從「瀏覽」選項卡中選擇「Swashbuckle」包,而後單擊「安裝」
 

2、配置

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();
 
 
 
 

3、調用

1.直接調用
只要輸入參數id,便可調用,很是方便
2.AutoRest
AutoRest ( https://github.com/Azure/AutoRest), 簡單來講,就是一個EXE工具,能夠根據Swagger的結構生成服務的客戶端,這個客戶端能夠讓你像調用本地方法同樣調用服務,方法內部包裝了Http請求。 
 
擴展:ABP集成swagger
 
 

4、錯誤記錄

swagger出現問題:not supported by swagger 2.0

一個controller中只能有一個HttpGet請求,多了就會報錯。建議減小重載方法,將其餘Get方法分開html

若是在swagger.config中加上c.ResolveConflictingActions(apiDescriptions => apiDescriptions.FirstOrDefault());則會只顯示第一個get方法 git

原文:https://blog.csdn.net/jin80506/article/details/77737470github

 
 
參考文章: