如果❤️我的文章有幫助,歡迎評論、關注、點贊。這是對我繼續技術創作最大的鼓勵。
Gin 生成 Swagger 文件
環境介紹
開發環境:windows10 x64
Golang:1。16
Gin:1。7。0
安裝 Swagger
idel 配置 go mod 由於我已經預設你已經安裝
gin 框架
,所以我直接在專案根目錄下安裝
swag
依賴
go get -u github。com/swaggo/swag/cmd/swaggo get -u github。com/swaggo/gin-swaggergo get -u github。com/swaggo/filesgo get -u github。com/alecthomas/template
呼叫方法註釋
Swagger 生成文件原理就是
掃描程式檔案中,方法註釋
。所以在方法上新增規範註釋,由為關鍵
Swagger 標準註釋[2]
// AdminLogin godoc// @Summary 管理員登陸// @Description 管理員登陸// @Tags 管理員介面// @ID /admin_login/login// @Accept json// @Produce json// @Param body body dto。AdminLoginInput true “body” # [值得名稱] body [值得型別] [是否必傳] “[返回值名稱]”// @Success 200 {object} middleware。Response{data=dto。DemoInput} “success”// @Router /admin_login/login [post]func (adminlogin *AdminLoginController) AdminLogin(ctx *gin。Context) { // 定義傳入資料結構 params:=&dto。AdminLoginInput{} if err:=params。BindValidParam(ctx); err != nil { middleware。ResponseError(ctx, 1001, err) return } out:=&dto。AdminLoginOutput{Token:params。UserName} middleware。ResponseSuccess(ctx,out)}
swagger 設入 Gin router
檔案
router/route。go
# 載入依賴import ( “[專案名稱]/docs” “github。com/gin-gonic/gin” “github。com/swaggo/files” “github。com/swaggo/gin-swagger”)func InitHttpServer() { var router *gin。Engine router = gin。Default() router。Static(“/html”, “。/public”) // 設定 swagger 訪問路由 router。GET(“/swagger/*any”, ginSwagger。WrapHandler(swaggerFiles。Handler)) router。Run(“:” + _const。HTTP_SERVER_PORT)}
Swagger 生成 API 文件
專案根目錄下
命令列
執行命令
swag init
swag init
命令會在專案根目錄下生成資料夾
docs
。
訪問 swagger 生成文件
專案根目錄執行命令
go run main。go
啟動網路服務。具體看你的gin 設定服務埠,使用瀏覽器訪問
http://localhost:[設定埠]/swagger/index。html
就可以看到剛才生成的介面文件
References
[1] 更多往期文章在我的個人部落格:
https://coderdao。github。io/
[2] Swagger 標準註釋:
https://swaggo。github。io/swaggo。io/declarative_comments_format/general_api_info。html