继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Gin 生成 Swagger 文档

锐玩道
关注TA
已关注
手记 70
粉丝 154
获赞 1426

如果❤️我的文章有帮助,欢迎评论、关注、点赞。这是对我继续技术创作最大的鼓励。[更多往期文章在我的个人博客] 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 生成文档原理就是 扫描程序文件中,方法注释。所以在方法上添加规范注释,由为关键
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 设置服务端口,使用浏览器访问 http://localhost:[设置端口]/swagger/index.html 就可以看到刚才生成的接口文档
图片描述

打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP