go语言框架gin之集成swagger

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go语言框架gin之集成swagger相关的知识,希望对你有一定的参考价值。

参考技术A 1.先安装Go对应的开源Swagger相关的库

go get github.com/swaggo/swag/cmd/swag

go get github.com/swaggo/gin-swagger

go get github.com/swaggo/files

go get github.com/alecthomas/template

2.验证是否安装成功:swag -v

3.针对接口写入注解

// @Summary 获取多个标签

// @Tags 标签

// @Produce  json

// @Param name query string false "标签名称" maxlength(100)

// @Param state query int false "状态" Enums(0, 1) default(1)

// @Param page query int false "页码"

// @Param page_size query int false "每页数量"

// @Success 200 object model.TagSwagger "成功"

// @Failure 400 object errcode.Error "请求错误"

// @Failure 500 object errcode.Error "内部错误"

// @Router /api/v1/tags [get]

func (t Tag) List(c *gin.Context)



// @Summary 新增标签

// @Tags 标签

// @Produce  json

// @Param name body string true "标签名称" minlength(3) maxlength(100)

// @Param state body int false "状态" Enums(0, 1) default(1)

// @Param created_by body string false "创建者" minlength(3) maxlength(100)

// @Success 200 object model.Tag "成功"

// @Failure 400 object errcode.Error "请求错误"

// @Failure 500 object errcode.Error "内部错误"

// @Router /api/v1/tags [post]

func (t Tag) Create(c *gin.Context)



// @Summary 更新标签

// @Tags 标签

// @Produce  json

// @Param id path int true "标签ID"

// @Param name body string false "标签名称" minlength(3) maxlength(100)

// @Param state body int false "状态 (0为未删除、1为已删除)" Enums(0, 1) default(1)

// @Param modified_by body string true "修改者" minlength(3) maxlength(100)

// @Success 200 array model.Tag "成功"

// @Failure 400 object errcode.Error "请求错误"

// @Failure 500 object errcode.Error "内部错误"

// @Router /api/v1/tags/id [put]

func (t Tag) Update(c *gin.Context)



4.针对整个项目进行注解,直接在main方法写入如下注解

//@title 项目名称

//@version 1.0

//@description 这里是描述

func main()

5.生成执行 swag init

这时会在我项目的docs文件夹下面生成docs.go、swagger.json、swagger.yaml三个文件

6.要在routers中进行默认初始化和注册对应的路由:

r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))

同时要引用 _"blog-service/docs" ,不然会报错

7.查看接口文档 : http://localhost:9090/swagger/index.html

8.ok,完成

以上是关于go语言框架gin之集成swagger的主要内容,如果未能解决你的问题,请参考以下文章

Go语言系列第三方框架和库——GIN:GIN介绍

Go语言框架:Beego vs Gin 的区别

基于go-gin框架的web服务框架之websocket(二)

[GO] GO语言gin框架实现管理员认证登陆接口

基于框架gin+xorm搭建的MVC项目

带你入门gin框架