Gin 生成 Swagger 文件

如果❤️我的文章有幫助,歡迎評論、關注、點贊。這是對我繼續技術創作最大的鼓勵。

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

Gin 生成 Swagger 文件

呼叫方法註釋

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

Gin 生成 Swagger 文件

swag init

命令會在專案根目錄下生成資料夾

docs

Gin 生成 Swagger 文件

訪問 swagger 生成文件

專案根目錄執行命令

go run main。go

啟動網路服務。具體看你的gin 設定服務埠,使用瀏覽器訪問

http://localhost:[設定埠]/swagger/index。html

就可以看到剛才生成的介面文件

Gin 生成 Swagger 文件

References

[1] 更多往期文章在我的個人部落格:

https://coderdao。github。io/

[2] Swagger 標準註釋:

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