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