天天看點

基于.NetCore3.1系列 —— 使用Swagger做Api文檔 (上篇)

 ​

為什麼在開發中,接口文檔越來越成為前後端開發人員溝通的樞紐呢?

基于.NetCore3.1系列 —— 使用Swagger做Api文檔 (上篇)

随着業務的發張,項目越來越多,而對于支撐整個項目架構體系而言,我們對系統業務的水準拆分,垂直分層,讓業務系統更加清晰,進而産生一系統平台和系統,并使用接口進行資料互動。是以可見,業務的不斷發展,接口不斷增多,很多接口各自寄宿在不同的項目中,如果沒有使用api工具進行管理,那麼使用和說明将變得非常複雜。是以,接口管理營運應運而生。

在過去的開發中,沒有API文檔管理工具之前,很多的API文檔在什麼地方寫的都有,有在word寫的,有在excel寫的,也有對應的項目目錄下readme.md寫的,每個公司都有每個公司的玩法,但是文檔規範極其不統一,甚至出現開發接口更新,但文檔不更新,最終導緻代碼和接口不比對,開發功能出問題。撸碼一分鐘,對接三小時。這往往是大家最痛苦的。   

基于.NetCore3.1系列 —— 使用Swagger做Api文檔 (上篇)

是以,在前後端分離的情況下,怎樣讓前後端開發人員更容易、更直覺、更舒服的方式進行溝通交流。在這裡,推薦一款輕量級的項目架構Swagger給大家使用。Swagger就是一款讓你更好書寫API文檔的架構

Swashbuckle.AspNetCore

基于.NetCore3.1系列 —— 使用Swagger做Api文檔 (上篇)

然後就在項目的Nuget依賴裡看到剛剛引入的Swagger

基于.NetCore3.1系列 —— 使用Swagger做Api文檔 (上篇)

在Startup.cs頁面中:

編輯 ConfigureServices 類:

   其中的Url位址不能為空。

編輯Configure類

注意:路徑配置,設定為空,表示直接在根域名(localhost:8001)通路該檔案,注意localhost:8001/swagger是通路不到的,去launchSettings.json把launchUrl去掉,如果你想換一個路徑,直接寫名字即可,比如直接寫c.RoutePrefix = "swagger";  

  到這裡之後,我們已經完成了對swagger的添加,F5運作之後,

基于.NetCore3.1系列 —— 使用Swagger做Api文檔 (上篇)

運作項目之後,我們發現官方預設的是 /WeatherForecast位址,是以我們修改成在域名後面輸入/index.html,就可以正常通路了。

如果想修改預設的啟動位址,可以在launchSetting.json檔案中的launchUrl設定為空,或者删除掉就可以了。

基于.NetCore3.1系列 —— 使用Swagger做Api文檔 (上篇)

這個時候我們再次啟動項目,就可以直接通路根目錄下的檔案了。

基于.NetCore3.1系列 —— 使用Swagger做Api文檔 (上篇)

如果啟動應用,并導航到 ​<code>​http://localhost:&lt;port&gt;/swagger/V1/swagger.json​</code>​。 生成的描述終結點的文檔顯示如下json格式。

基于.NetCore3.1系列 —— 使用Swagger做Api文檔 (上篇)

已經有接口了,但如何添加注釋呢?

作為接口使用者,我們關心的是接口的傳回内容和響應類型,那我們如何定義描述響應類型呢?

在項目開發中,使用的實體類,又如何在Swagger中展示呢?

在部署項目,引用Swagger既有文檔又不需要額外部署,但是如何在開發環境中使用,而在生産環境中禁用呢?

  以上的這些内容,會在下一篇講解Swagger做Api文檔做詳解。

  好了,今天的使用Swagger做Api文檔上篇内容就說到這裡了,希望能給大家在使用Core開發項目中使用Swagger生産接口文檔帶來幫助。

  1. 從過去手寫Api文檔,到引入Swagger工具自動生産API接口說明文檔,這一轉換,讓更多的接口可以以通俗易懂的方式展現給開發人員。

  2. 後續會繼續介紹Swagger的一些進階用法,希望對大家使用Swagger有所幫助。