Gin 生成 Swagger 文件

davidtim發表於2021-09-09

如果❤️我的文章有幫助,歡迎評論、關注、點贊。這是對我繼續技術創作最大的鼓勵。[更多往期文章在我的個人部落格] coderdao.github.io/

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/swag
go get -u github.com/swaggo/gin-swagger
go get -u github.com/swaggo/files
go get -u github.com/alecthomas/template

圖片描述

呼叫方法註釋

Swagger 生成文件原理就是 掃描程式檔案中,方法註釋。所以在方法上新增規範註釋,由為關鍵

// 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 設定服務埠,使用瀏覽器訪問 [設定埠]/swagger/index.html 就可以看到剛才生成的介面文件
圖片描述

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3349/viewspace-2797475/,如需轉載,請註明出處,否則將追究法律責任。

相關文章