中年大叔學編程-Gin-Swagger生成API接口文檔

2020-08-28 中年大叔學編程

最近簡單的學習了一下Golang,並且用Gin開發了兩個小應用,一個短域名生成,一個微信小程序。感受到了Golang的代碼簡潔、部署簡單、內存佔用少、零停機平滑重啟等優勢。在開發小程序的時候,需要生成接口文檔,這裡需要用到Gin-Swagger了,所以簡單的就來整理一下。

這裡我用的環境是:

  • go version go1.14.6 windows/amd64
  • GoLand 2020.2.1
  • gin v1.6.3
  • swag v1.6.7

這裡先用Goland新建一個demo項目吧,在新建的時候,我們最好就要把包的代理地址配置好

這裡我們需要安裝Gin、swag、gin-swagger、files幾個包,可以通過命令的方式

go get -u github.com/gin-gonic/gingo get -u github.com/swaggo/swag/cmd/swaggo get -u github.com/swaggo/gin-swaggergo get -u github.com/swaggo/files

但是在Goland中,會自動獲取複製的連接,然後提醒安裝,直接點擊相應的按鈕即可,非常方便。 這裡我們新建一個main.go文件,加入如下代碼

import ( _ &34; &34; swaggerFiles &34; ginSwagger &34;)func main() { r := gin.New() // use ginSwagger middleware to r.GET(&34;, ginSwagger.WrapHandler(swaggerFiles.Handler)) r.Run()}

然後進入Terminal中執行swag init

現在,運行項目(默認8080埠)並訪問http://localhost:8080/swagger/index.html

因為現在還沒有開發相應的接口,所以什麼信息都沒有,在開始之前,我們需要先了解一下gin-swagger的註解

  • @Tags 接口分組,相當於歸類
  • @Summary 接口的簡要描述
  • @Description 接口的詳細描述
  • @Id 全局標識符
  • @Version 接口版本號
  • @Accept 發起請求的數據類型
  • @Produce 接口返回的數據類型
  • @Param 請求參數描述
  • @Success 請求成功後返回信息
  • @Failure 請求失敗後返回信息
  • @Router 請求的路由路徑和請求方式。
  • @contact.name 接口聯繫人
  • @contact.url 聯繫人網址
  • @contact.email 聯繫人郵箱

上面就是一些較為基礎的參數說明,當然還有一些更加複雜的,比如@security,@in等,這些以後再說吧,我們就可以在相應的Controller方法上加註解了

// @Tags Demo// @Id 1// @Summary 接口Demo// @Description 接口詳細描述信息// @Produce json// @Param id path int true &34;// @Success 200 {string} string// @Failure 400 {string} string// @Router /api/v1/demo/{id} [get]// @contact.name 中年大叔學編程// @contact.email eyiadmin@163.comfunc Demo(c *gin.Context) { c.JSON(200,&34;)}

在main方法中註冊路由

r.GET(&34;, controller.Demo)

現在,進入Terminal中再次執行swag init並啟動,這時候就可以看到對應的內容了

我們來執行以下看看效果

這樣一個API接口文檔就有了,而且還方便我們調試。

我只是記錄我的學習過程,由於書讀得少,可能很多地方表述或者是理解得不對,請輕噴並指正。

相關焦點

  • golang-gin框架實現swagger文檔
    上次講到golang-echo框架實現swagger文檔,並在上次文章結尾,講到本期要在gin框架下實現swagger接口文檔。話不多說直接上圖,同樣在文章結尾,會把源碼分享出來。源碼地址:https://github.com/OnlyJackShow/share-echo-api.git
  • hyperf api接口自動驗證和swagger接口文檔生成組件
    hyperf-apihelperhyperf-apihelper [hyperf api and swagger helper], 它是一個Hyperf框架的 [api接口自動驗證和swagger接口文檔生成] 組件.
  • Api接口文檔生成工具:Swagger2
    就可以很好地解決,它可以動態生成Api接口文檔,降低溝通成本,促進項目高效開發。SpringBoot集成Swagger21、pom.xml添加依賴這裡使用swagger2 Maven依賴的最新版本2.9.22、Swagger2配置類將Swagger2一些配置改為讀取外部配置文件中的參數,可在所有的api中添加固定參數,比如token,掃描包的路徑也擴展為支持多個,想進一步了解,歡迎留言。
  • springboot +swagger-ui 自動生成API文檔
    什麼是SwaggerSwagger是一個Restful風格接口的文檔在線自動生成和測試的框架官網:廢話不多說,先看一下 swagger-ui 生成的api 的效果吧好了這個就是自動生成的api 效果。*/@Configuration@EnableSwagger2public class Swagger2 { /** * 創建API應用 * apiInfo() 增加API相關信息 * 通過select()函數返回一個ApiSelectorBuilder實例,用來控制哪些接口暴露給Swagger來展現, * 本例採用指定掃描的包路徑來定義指定要建立API的目錄。
  • 使用swagger自動生成靜態的接口文檔說明頁
    那麼有什麼方式可以在開發接口中用一定的規則生成接口在線文檔,直接提供給前端人員,都按照既定的規則開發完即可上線。那麼swagger可以幫我們減輕這種頭疼的事情了。>接下來創建swagger的配置類@Configuration@EnableSwagger2public class SwaggerConfig { /** * 通過createRestApi函數創建Docket的Bean之後, apiInfo()用來創建該Api的基本信息(這些基本信息會展現在文檔頁面中)
  • NET Core 3.x使用Swagger生成在線接口文檔
    在.NET 5正式發布之前還是先對之前的東西複習一下,那麼就先從.NET Core 使用swagger生成接口文檔開始吧。在開發WebAPI的時候,沒有接口文檔是非常難受的,離線文檔固然好,但是更新不及時,所以我們需要一個能在線實時更新的的接口文檔,那麼Swagger備受眾多開發者的青睞,所以它成了我們的不二之選。
  • Springboot OpenAPI文檔生成器Swagger
    ,可以方便的用來生成OpenAPI規格的接口文檔,支持Go、Python、Haskell、Java等多種語言,同時支持在線調試接口。Swagger 工具集包含:• Swagger Editor – 在線編寫 OpenAPI 規範的編輯器• Swagger UI – 使用 OpenAPI 規範生成的交互式文檔• Swagger Codegen – 使用 OpenAPI 規範分別生成客戶端/伺服器代碼(Server-stub)的工具
  • golang-echo框架實現swagger文檔
    隨著微服務的持續火熱,越來越多的公司熱衷於前後端分離,於是我們在日常的開發工作中,經常會出現需要開發接口和編寫文檔工作,需要前後端對接工作。還好swagger(絲襪哥)的橫空出現,很好的幫我們解決了這個問題。 在這裡,首先要說明一點,swagger很早就發布了。這裡所寫的是關於golang語言下的echo框架和swagger運用起來。
  • SpringCloud網關聚合Swagger接口文檔實踐
    大多數情況下,開發人員可能會使用在線文檔工具或者離線文檔來描述接口的一些信息。離線文檔存在最大的缺點就是當接口發生變化後,需要對接口文檔進行更新,無形中增加了開發人員的工作量。如果接口文檔更新不及時,那麼在前後端對接的過程中將會產生誤差,這樣將會大大增加前後端對接的溝通成本。目前後端開發中應用到最多的可能是在線文檔生成工具,例如:swagger。
  • 別再用swagger了,給你推薦幾個文檔生成神器
    最近公司打算做一個openapi開放平臺,讓我找一款好用的在線文檔生成工具,具體要求如下: 1.必須是開源的 2.能夠實時生成在線文檔文檔生成工具,smart-doc顛覆了傳統類似swagger這種大量採用註解侵入來生成文檔的實現方法。
  • Swagger2—API文檔框架(二)
    方法設置哪個包中內容被掃描3、自定義註解設置不需要生成接口文檔的方法3.3 添加NotIncludeSwagger註解在不需要生成接口文檔的方法上面添加@NotIncludeSwagger註解後,該方法將不會被Swagger進行生成在接口文檔中。
  • smart-doc 1.9.4 發布,Java 零註解 API 文檔生成工具
    ,smart-doc顛覆了傳統類似swagger這種大量採用註解侵入來生成文檔的實現方法。smart-doc完全基於接口源碼分析來生成接口文檔,完全做到零註解侵入,你只需要按照java標準注釋編寫,smart-doc就能幫你生成一個簡易明了的markdown 或是一個像GitBook樣式的靜態html文檔。如果你已經厭倦了swagger等文檔工具的無數註解和強侵入汙染,那請擁抱smart-doc吧!
  • smart-doc 1.9.6 發布,Java 零註解 API 文檔生成工具
    smart-doc是一款同時支持java restful api和apache dubbo rpc接口文檔生成的工具,smart-doc顛覆了傳統類似swagger這種大量採用註解侵入來生成文檔的實現方法
  • smart-doc 1.9.3 發布,Java 零註解 API 文檔生成工具
    smart-doc是一款同時支持java restful api和apache dubbo rpc接口文檔生成的工具,smart-doc顛覆了傳統類似swagger這種大量採用註解侵入來生成文檔的實現方法
  • 什麼是Swagger(Api接口管理)?如何運用(代碼實現)
    RestFul Api文檔在線自動生成工具=》Api文檔與Api定義同步更新直接運行,可以在線測試API接口支持多種語言apiInfo:設置描述文件中 info。Docket(DocumentationType.SWAGGER_2) /** *配置Swagger信息 */ .apiInfo(apiInfo()) .groupName("json-lu")//swagger分組,一個Docket
  • smart-doc 2.0.1 發布,Java 零註解 API 文檔生成工具
    smart-doc是一款同時支持java restful api和apache dubbo rpc接口文檔生成的工具
  • smart-doc 2.0.5 發布,Java 零註解 API 文檔生成工具
    smart-doc 是一款同時支持 java restful api 和 Apache Dubbo rpc 接口文檔生成的工具,smart-doc 顛覆了傳統類似 swagger 這種大量採用註解侵入來生成文檔的實現方法
  • smart-doc 2.0.2 發布,Java 零註解 API 文檔生成工具
    smart-doc 是一款同時支持 java restful api 和 Apache Dubbo rpc 接口文檔生成的工具,smart-doc 顛覆了傳統類似 swagger 這種大量採用註解侵入來生成文檔的實現方法
  • smart-doc 1.9.9 發布,Java 零註解 API 文檔生成工具
    smart-doc是一款同時支持java restful api和apache dubbo rpc接口文檔生成的工具,smart-doc顛覆了傳統類似swagger這種大量採用註解侵入來生成文檔的實現方法
  • 有了Swagger2 再也不用擔心API文檔的維護了
    在這個時候就出現了一個問題,前後端分離後數據交互的問題,前端開發工程師在去調用後端接口獲取數據的時候,是要遵循一定的規則的,比如:傳遞給後端的參數類型等。這個規則就是我們常說的接口文檔,這個文檔就定義了前後端數據交互時的規範。