golang gin框架 集成swagger 自動生成文檔

goswagger github倉庫html

https://github.com/swaggo/swag

 

安裝 swag cligit

1.由於網絡緣由,先安裝gopm 管理工具github

go get -v -u github.com/gpmgo/gopm

 

安裝到了 $GOPTH/bin裏 找不到的話,用 sudo find / -name gopm 找一下golang

2.安裝swagweb

gopm get -g -v github.com/swaggo/swag/cmd/swag

過程當中可能會報錯,重試便可json

3.找到 swag ( find / -name swag ====》   cd /go/src/github.com/swaggo/swag/cmd/swag/) 會看到main.go 文件api

4 執行:go install (可能會報錯缺乏包,挨個安裝 go get -u  github.com/urfave/cli)網絡

5 再次執行  go install 函數

不出意外的話,swag安裝成功了工具

找到swag執行文件,應該在$GOPTH/bin裏面,而後加成全局變量( sudo cp swag /usr/local/go/bin/)

而後試一下swag -version

lhs:redigo houlv$ swag -version swag version v1.6.2

成功!

在golang-gin項目上集成swagger

找到main函數所在的類

添加如下代碼

 

import裏
swaggerFiles "github.com/swaggo/files" ginSwagger "github.com/swaggo/gin-swagger" _ "testsu.cn/rocket/docs"

其中docs是你生成docs的路徑

面函數裏實現

 g.Go(func() error { r := gin.New() url := ginSwagger.URL("http://localhost:8080/swagger/doc.json") // The url pointing to API definition
        r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler, url)) r.Run() return nil })

 

go.mod裏添加

github.com/swaggo/gin-swagger v1.2.1-0.20190717074206-d488a692749f
	github.com/swaggo/swag v1.5.1

 在API handler文件裏添加標準註解

例如:

// @Summary 生成pdf文檔 // @Description 傳遞id生成pdf文檔 // @Accept json // @Param id path int true "id" // @Success 200 {object} model.VersionDTO // @Failure 500 {string} json "{"code":500,"data":{},"msg":"ok"}" // @Router /report/{id}/pdf/download [get]
func (handler *TestcaseReportHtml) DownloadTestCasePDF(c *gin.Context) {

而後在項目的根目錄執行 

swag init -g launcher/api-rocket/web.go

 

 -g 後面所跟的爲main方法在的位置

 

以後將項目跑起來,訪問地址:
http://localhost:8080/swagger/index.html

便可看到自動生成的文檔

入截圖所示:

 

 

最後添加:將swagger的標準庫添加上:

標準註釋

https://swaggo.github.io/swaggo.io/declarative_comments_format/general_api_info.html 

原文出處:https://www.cnblogs.com/tsxylhs/p/11436522.html

相關文章
相關標籤/搜索