swaggos 是一个golang版本的swagger文档生成器,提供了native code包装器,并且支持主流的web框架包裹器

github 地址:https://github.com/swaggo/gin-swagger

下载安装 swag

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

在Go项目根文件夹中运行Swag

main.go所在目录执行 swag init, -g 参数是输出详细信息

执行后,会生成docs/doc.go以及docs/swagger.json,docs/swagger.yaml

$ swag init

下载gin-swagger

$ go get -u github.com/swaggo/gin-swagger
$ go get -u github.com/swaggo/files

然后在路由文件引入

import (
"github.com/gin-gonic/gin"
swaggerFiles "github.com/swaggo/files"
ginSwagger "github.com/swaggo/gin-swagger"
)

添加访问文档路由

// swage 文档访问路由\n
eng := gin.Default()
eng.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))

注释参数

  • 注释详细格式参考:https://swaggo.github.io/swaggo.io/declarative_comments_format/general_api_info.html

  • 主程序注释(main.go)

    // @title Golang Esign API
    // @version 1.0
    // @description Golang api of demo
    // @termsOfService http://github.com // @contact.name API Support
    // @contact.url http://www.cnblogs.com
    // @contact.email ×××@qq.com //@host 127.0.0.1:8081
    func main() {
    }
  • 控制器注释(congroller.go)

    • Get 参数方法

      type GetOperationLogListResponse struct {
      List *[]model.OperationLog `json:"list"`
      Total int `json:"total"`
      } // @Title 应用中心操作日志
      // @Author mengyilingjian@outlook.com
      // @Description 获取应用中心操作日志
      // @Tags operationlog
      // @Param Authorization header string true "Bearer 31a165baebe6dec616b1f8f3207b4273"
      // @Param route formData string false "路由"
      // @Param operator formData string false "操作者"
      // @Param operation_type formData string false "操作类型 1 新增、2 删除、3 更新"
      // @Param description formData string false "操作描述"
      // @Param start_time formData string false "开始时间"
      // @Param end_time formData string false "结束时间"
      // @Param page formData string true "页数"
      // @Param size formData string true "数据条数"
      // @Success 200 {object} GetOperationLogListResponse
      // @Router /api/v1/app/operationlog/appcenter [get]
      func GetOperationLogList(c *gin.Context) { }

      以上生成文档格式如下:

    • Post 参数方法

      ReleaseTemplateAdd struct {
      Name string `json:"name"`
      DeployEnv string `json:"deploy_env"`
      GitlabType int `json:"gitlab_type"`
      GitlabBranchName string `json:"gitlab_branch_name"`
      IsAutoRelease int `json:"is_auto_release"`
      Description string `json:"description"`
      GitlabCITemplateID int32 `json:"gitlab_ci_template_id"`
      GitlabID uint32 `json:"gitlab_id"`
      }
      // @Title 新增模版
      // @Author mengyilingjian@outlook.com
      // @Description 新增模版
      // @Tags release template
      // @Param Authorization header string true "Bearer 31a165baebe6dec616b1f8f3207b4273"
      // @Param body body ReleaseTemplateAdd true "JSON数据"
      // @Success 200 {object} handler.ReportJSONResult
      // @Router /api/v1/release/template/add [post]
      func ReleaseTemplateAdd(c *gin.Context){ }

      以上生成格式文档如下:

Go gin框架 使用swagger生成API文档的更多相关文章

  1. golang gin框架 使用swagger生成api文档

    github地址:https://github.com/swaggo/gin-swagger 1.下载swag $ go get -u github.com/swaggo/swag/cmd/swag ...

  2. .Net Core 3.1 WebApi使用Swagger生成Api文档

    用swagger生成Api文档 1.安装Swashbuckle.AspNetCore 右键单击"解决方案资源管理器" > "管理 NuGet 包"中的项目 ...

  3. 使用swagger生成API文档

    有时候一份清晰明了的接口文档能够极大地提高前后端双方的沟通效率和开发效率.本文将介绍如何使用swagger生成接口文档. swagger介绍 Swagger本质上是一种用于描述使用JSON表示的RES ...

  4. 12 Django Rest Swagger生成api文档

    01-简介 Swagger:是一个规范和完整的框架,用于生成.描述.调用和可视化RESTful风格的Web服务.总体目标是使客户端和文件系统源代码作为服务器以同样的速度来更新.当接口有变动时,对应的接 ...

  5. Laravel(PHP)使用Swagger生成API文档不完全指南 - 基本概念和环境搭建 - 简书

    在PHPer中,很多人听说过Swagger,部分人知道Swagger是用来做API文档的,然而只有少数人真正知道怎么正确使用Swagger,因为PHP界和Swagger相关的资料实在是太少了.所以鄙人 ...

  6. ASP.NET Core 3.0 WebApi中使用Swagger生成API文档简介

    参考地址,官网:https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/getting-started-with-swashbuckle?view ...

  7. 浅析如何在Nancy中使用Swagger生成API文档

    前言 上一篇博客介绍了使用Nancy框架内部的方法来创建了一个简单到不能再简单的Document.但是还有许许多多的不足. 为了能稍微完善一下这个Document,这篇引用了当前流行的Swagger, ...

  8. Spring MVC中使用Swagger生成API文档和完整项目示例Demo,swagger-server-api(二十)

    一:Swagger介绍 Swagger是当前最好用的Restful API文档生成的开源项目,通过swagger-spring项目 实现了与SpingMVC框架的无缝集成功能,方便生成spring r ...

  9. Spring MVC中使用Swagger生成API文档和完整项目示例Demo,swagger-server-api

    本文作者:小雷FansUnion-一个有创业和投资经验的资深程序员-全球最大中文IT社区CSDN知名博主-排名第119   实际项目中非常需要写文档,提高Java服务端和Web前端以及移动端的对接效率 ...

随机推荐

  1. C语言基础练习——打印乘法口诀表

    C语言基础练习--打印乘法口诀表 JERRY_Z. ~ 2020 / 8 / 26 转载请注明出处! 代码: /* * @Author: JERRY_Z. * @Date: 2020-08-26 16 ...

  2. Mysqldump备份提示没有权限

    在使用mysqldump备份的时候如果提示没有权限,执行以下命令 grant select on mysql.proc to 'your-mysqldump-user' 转自https://stack ...

  3. [FJOI2020]世纪大逃亡 题解

    FJOI2020 D1T1 题目大意 给出一个由 $n$ 行 $m$ 列的点构成的网格,其中第 $1$ 行,第 $n$ 行,第 $1$ 列与第 $m$ 列为边界,给出 $s$ 个点,求这 $s$ 个点 ...

  4. JavaScript 究竟是怎样去执行的?

    摘要: 理解 JS 引擎运行原理. 作者:前端小智 原文:搞懂 JavaScript 引擎运行原理 Fundebug经授权转载,版权归原作者所有. 一些名词 JS 引擎 — 一个读取代码并运行的引擎, ...

  5. 在一台电脑上,添加多个Git的ssh key

    Git的第一套公秘钥默认名为 id_rsa ,如果你想要生成另外一个公钥,比如 aysee ,你也可以使用任何你喜欢的名字. 步骤如下:(总共四大操作) 一.生成ssh key 1.生成一个新的自定义 ...

  6. js转换人民币金额 小写到大写

    u.bigNum=function(n) { var fraction = ['角', '分']; var digit = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒 ...

  7. 15 自定义分页pagination全局组件

    1.Pagination.vue <template> <el-pagination @size-change="handleSizeChange" @curre ...

  8. Jmeter简单操作 取样器 ,监听器

    1.创建线程组 1.2 (1)  线程组主要包含三个参数:线程数.准备时长(Ramp-Up Period(in seconds)).循环次数. (2) 线程数:虚拟用户数.一个虚拟用户占用一个进程或线 ...

  9. cdispaly的Grid布局与Flex布局

    cdispaly的Grid布局与Flex布局 Gird 布局与 Flex 布局有一定的相似性,都是对容器的内部项目进行划分. Flex 布局是轴线布局,只能指定项目针对轴线的位置,可以看作成一维布局 ...

  10. H5选择器

    1.标签选择器 注意点:1. 标签选择器选中当前所有的标签,而不能单独选择某个标签 2.标签选择器不无多深都能被选中     3.只要是HTML中的标签就可以作为表亲啊选择器(h/a/img/ul/o ...