[go-swagger]在go语言中使用swagger教程

#新星杯·14天创作挑战营·第11期#

1、引言

1.1、什么是swagger

Swagger 是一个强大的测试工具,用于设计、构建、记录和使用 RESTful Web 服务。它提供了一种标准化的方式来描述和文档化 API,使得开发人员可以更轻松地理解和使用这些 API。

1.2、为什么要用swagger

swagger可以根据API的定义自动生成交互性的文档,这些文档是动态生成的,能够实时反应api的现状。节省时间,开发人员无需手动编写和维护 API 文档。减少错误,自动生成的文档减少了因手动编写而导致的错误。快速测试,开发人员和测试人员可以快速测试 API 的功能,而无需编写额外的测试代码。

2、在go语言中安装swagger

1、安装swagger

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

2、检验安装是否成功  

swag -v
swag version v1.7.0 

3、安装go-swagger的扩展  

go get -u -v github.com/swaggo/gin-swagger
go get -u -v github.com/swaggo/files
go get -u -v github.com/alecthomas/template 

4、使用 swag CLI 生成文档,运行下列命令生成swagger文档(默认生成 docs.goswagger.jsonswagger.yaml 文件)。  

swag init 

3、编写带有swagger注释的代码

1、在main.go中导包

import(
    swaggerFiles "github.com/swaggo/files"
    ginSwagger "github.com/swaggo/gin-swagger"
    _ "yoloblog1.0/docs"        //之前使用swag init 生成的swagger文档的路径

2、在具体的路由处理函数上方添加注释,定义该接口的行为。  

// Register
// @Summary 用户注册
// @Produce json
// @Param user body system.SysUser true "用户信息"
// @Success 200 {object} system.SysUser
// @Failure 400 {string} string "注册失败"
// @Router /user/register [post]
func (m *UserApi) Register(c *gin.Context) {
    var user system.SysUser
    c.ShouldBindJSON(&user)
    err := userService.Register(&user)
    if err != nil {
        c.JSON(http.StatusOK, gin.H{
            "status": global.FAIL,
            "msg":    err.Error(),
        })
        return
    }
    c.JSON(http.StatusOK, gin.H{
        "status": global.SUCCESS,
        "msg":    "success",
    })
    return

  • @Summary:接口简述

  • @Produce:返回的 MIME 类型

  • @Param:参数定义(格式:名称 位置 类型 是否必填 描述

  • @Success:成功响应(格式:状态码 {类型} 数据结构 描述

  • @Failure:失败响应

  • @Router:路由路径和方法

3、在gin路由中声明swagger的接口

func main() {
    global.Router = gin.Default()
    global.Router.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
    global.Router.Run(":8080")

4、重新初始化swagger

swag init 

4、实现结果

 

5、总结

swagger是一个比较简单实用的接口文档工具,希望能够对你的开发学习有所帮助。

6、参考链接

https://juejin.cn/post/7126802030944878600

基于golang的swagger超贴心、超详细使用指南【有很多坑】_golang swagger-CSDN博客

使用 Swagger 为 Go 项目生成 API 文档-腾讯云开发者社区-腾讯云

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值