最近在用 .Net Core 作項目 css
瞭解到swagger 是一個不錯的工具html
簡單介紹一下程序員
在使用asp.net core 進行api開發完成後,書寫api說明文檔對於程序員來講想必是件很痛苦的事情吧,但文檔又必須寫,並且文檔的格式若是沒有具體要求的話,最終完成的文檔則徹底取決於開發者的心情。或者詳細點,或者簡單點。那麼有沒有一種快速有效的方法來構建api說明文檔呢?答案是確定的, Swagger就是最受歡迎的REST APIs文檔生成工具之一!sql
Swagger 能夠生成一個具備互動性的API控制檯,開發者能夠用來快速學習和嘗試API。json
Swagger 能夠生成客戶端SDK代碼用於各類不一樣的平臺上的實現。c#
Swagger 文件能夠在許多不一樣的平臺上從代碼註釋中自動生成。api
Swagger 有一個強大的社區,裏面有許多強悍的貢獻者。app
Swashbuckle.AspNetCore 是一個開源項目,用於生成 ASP.NET Core Web API 的 Swagger 文檔。asp.net
NSwag 是另外一個用於將 Swagger UI 或 ReDoc 集成到 ASP.NET Core Web API 中的開源項目。 它提供了爲 API 生成 C# 和 TypeScript 客戶端代碼的方法。工具
Swashbuckle.AspNetCore.Swagger:將 SwaggerDocument 對象公開爲 JSON 終結點的 Swagger 對象模型和中間件。
Swashbuckle.AspNetCore.SwaggerGen:從路由、控制器和模型直接生成 SwaggerDocument 對象的 Swagger 生成器。 它一般與 Swagger 終結點中間件結合,以自動公開 Swagger JSON。
Swashbuckle.AspNetCore.SwaggerUI:Swagger UI 工具的嵌入式版本。 它解釋 Swagger JSON 以構建描述 Web API 功能的可自定義的豐富體驗。 它包括針對公共方法的內置測試工具。
從「程序包管理器控制檯」窗口進行安裝
轉到「視圖」 > 「其餘窗口」 > 「程序包管理器控制檯」
導航到包含 TodoApi.csproj 文件的目錄
請執行如下命令 ·Install-Package Swashbuckle.AspNetCore
從「管理 NuGet 程序包」對話框中:
右鍵單擊「解決方案資源管理器」 > 「管理 NuGet 包」中的項目
將「包源」設置爲「nuget.org」
在搜索框中輸入「Swashbuckle.AspNetCore」
從「瀏覽」選項卡中選擇「Swashbuckle.AspNetCore」包,而後單擊「安裝」
首先引入命名空間:
using Swashbuckle.AspNetCore.Swagger;
將 Swagger 生成器添加到 Startup.ConfigureServices 方法中的服務集合中:
在 Startup.Configure
方法中,啓用中間件爲生成的 JSON 文檔和 Swagger UI 提供服務:
啓動應用,並導航到 http://localhost:<port>/swagger/v1/swagger.json
。 生成的描述終結點的文檔顯示以下json格式。
可在 http://localhost:<port>/swagger
找到 Swagger UI。 經過 Swagger UI 瀏覽 API文檔,以下所示。
要在應用的根 (
http://localhost:<port>/
) 處提供 Swagger UI,請將RoutePrefix
屬性設置爲空字符串:
app. UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1"); c.RoutePrefix = string.Empty; });
在 AddSwaggerGen
方法的進行以下的配置操做會添加諸如做者、許可證和說明信息等:
wagger UI 顯示版本的信息以下圖所示:
爲了防止博客被轉載後,不保留本文的連接,特地在此加入本文的連接:https://www.cnblogs.com/yilezhu/p/9241261.html
你們先點擊下api,展開以下圖所示,能夠沒有註釋啊,怎麼來添加註釋呢?
按照下圖所示用三個/添加文檔註釋,以下所示
而後運行項目,回到swaggerUI中去查看註釋是否出現了呢
仍是沒有出現,別急,往下看!
可以使用如下方法啓用 XML 註釋:
右鍵單擊「解決方案資源管理器」中的項目,而後選擇「屬性」
查看「生成」選項卡的「輸出」部分下的「XML 文檔文件」框
啓用 XML 註釋後會爲未記錄的公共類型和成員提供調試信息。若是出現不少警告信息 例如,如下消息指示違反警告代碼 1591:
warning CS1591: Missing XML comment for publicly visible type or member 'TodoController.GetAll()'
若是你有強迫症,想取消警告怎麼辦呢?能夠按照下圖所示進行取消
注意上面生成的xml文檔文件的路徑,
注意:
1.對於 Linux 或非 Windows 操做系統,文件名和路徑區分大小寫。 例如,「SwaggerDemo.xml」文件在 Windows 上有效,但在 CentOS 上無效。
2.獲取應用程序路徑,建議採用
Path.GetDirectoryName(typeof(Program).Assembly.Location)
這種方式或者·AppContext.BaseDirectory這樣來獲取
從新生成並運行項目查看一下注釋出現了沒有
經過上面的操做能夠總結出,Swagger UI 顯示上述註釋代碼的 <summary>
元素的內部文本做爲api大的註釋!
固然你還能夠將 remarks 元素添加到 Get
操做方法文檔。 它能夠補充 <summary>
元素中指定的信息,並提供更可靠的 Swagger UI。 <remarks>
元素內容可包含文本、JSON 或 XML。 代碼以下:
從新生成下項目,當好到SwaggerUI看到以下所示:
摘錄自:https://www.cnblogs.com/yanbigfeg/p/9232844.html
接口使用者最關心的就是接口的返回內容和響應類型啦。下面展現一下201和400狀態碼的一個簡單例子:
咱們須要在咱們的方法上添加:[ProducesResponseType(201)][ProducesResponseType(400)]
而後添加相應的狀態說明:
最終代碼應該是這個樣子:
效果以下所示
下面咱們經過一個小例子經過SwaggerUI調試下接口吧
點擊一個須要測試的API接口,而後點擊Parameters左右邊的「Try it out 」 按鈕
在出現的參數文本框中輸入參數,以下圖所示的,輸入參數2
點擊執行按鈕,會出現下面所示的格式化後的Response,以下圖所示
好了,今天的在ASP.NET Core WebApi使用Swagger生成api說明文檔看這篇就夠了的教程就到這裏了。但願可以對你們學習在ASP.NET Core中使用Swagger生成api文檔有所幫助
轉自 https://www.cnblogs.com/yilezhu/p/9241261.html