golang gin框架 集成swagger 自动生成文档
goswagger github仓库
https://github.com/swaggo/swag
安装 swag cli
1.因为网络原因,先安装gopm 管理工具
go get -v -u github.com/gpmgo/gopm
安装到了 $GOPTH/bin里 找不到的话,用 sudo find / -name gopm 找一下
2.安装swag
gopm get -g -v github.com/swaggo/swag/cmd/swag
过程中可能会报错,重试即可
3.找到 swag ( find / -name swag ====》 cd /go/src/github.com/swaggo/swag/cmd/swag/) 会看到main.go 文件
4 执行:go install (可能会报错缺少包,挨个安装 go get -u github.com/urfave/cli)
5 再次执行 go install
不出意外的话,swag安装成功了
找到swag执行文件,应该在$GOPTH/bin里面,然后加成全局变量( sudo cp swag /usr/local/go/bin/)
然后试一下swag -version
lhs:redigo houlv$ swag -version
swag version v1.6.2
成功!
在golang-gin项目上集成swagger
找到main函数所在的类
添加以下代码
import里
swaggerFiles "github.com/swaggo/files"
ginSwagger "github.com/swaggo/gin-swagger"
_ "testsu.cn/rocket/docs"
其中docs是你生成docs的路径
面函数里实现
g.Go(func() error {
r := gin.New()
url := ginSwagger.URL("http://localhost:8080/swagger/doc.json") // The url pointing to API definition
r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler, url))
r.Run()
return nil
})
go.mod里添加
github.com/swaggo/gin-swagger v1.2.1-0.20190717074206-d488a692749f
github.com/swaggo/swag v1.5.1
在API handler文件里添加标准注解
例如:
// @Summary 生成pdf文档
// @Description 传递id生成pdf文档
// @Accept json
// @Param id path int true "id"
// @Success 200 {object} model.VersionDTO
// @Failure 500 {string} json "{"code":500,"data":{},"msg":"ok"}"
// @Router /report/{id}/pdf/download [get]
func (handler *TestcaseReportHtml) DownloadTestCasePDF(c *gin.Context) {
然后在项目的根目录执行
swag init -g launcher/api-rocket/web.go
-g 后面所跟的为main方法在的位置
之后将项目跑起来,访问地址:
http://localhost:8080/swagger/index.html
即可看到自动生成的文档
入截图所示:
最后添加:将swagger的标准库添加上:
标准注释
https://swaggo.github.io/swaggo.io/declarative_comments_format/general_api_info.html
golang gin框架 集成swagger 自动生成文档的更多相关文章
- SpringBoot 集成Swagger2自动生成文档和导出成静态文件
目录 1. 简介 2. 集成Swagger2 2.1 导入Swagger库 2.2 配置Swagger基本信息 2.3 使用Swagger注解 2.4 文档效果图 3. 常用注解介绍 4. Swagg ...
- golang gin框架 使用swagger生成api文档
github地址:https://github.com/swaggo/gin-swagger 1.下载swag $ go get -u github.com/swaggo/swag/cmd/swag ...
- 使用Swagger自动生成文档
1.maven依赖 maven仓库(https://mvnrepository.com/)搜索springfox <!-- https://mvnrepository.com/artifact/ ...
- 使用 Swagger 自动生成 ASP.NET Core Web API 的文档、在线帮助测试文档(ASP.NET Core Web API 自动生成文档)
对于开发人员来说,构建一个消费应用程序时去了解各种各样的 API 是一个巨大的挑战.在你的 Web API 项目中使用 Swagger 的 .NET Core 封装 Swashbuckle 可以帮助你 ...
- 使用swagger在netcorewebapi项目中自动生成文档
一.背景 随着前后端分离模式大行其道,我们需要将后端接口撰写成文档提供给前端,前端可以查看我们的接口,并测试,提高我们的开发效率,减少无效的沟通.在此情况下,通过代码自动生成文档,这种需求应运而生,s ...
- MVC WEB api 自动生成文档
最近在一直在用webapi做接口给移动端用.但是让我纠结的时候每次新加接口或者改动接口的时候,就需要重新修改文档这让我很是苦恼.无意中发现.webapi居然有自动生成文档的功能....真是看见了救星啊 ...
- eoLinker 新功能发布,增加了识别代码注释自动生成文档功能
产品地址:https://www.eolinker.com开源代码:https://www.eolinker.com/#/os/download在线生成代码注释工具:http://tool.eolin ...
- 【Sphinx】 为Python自动生成文档
sphinx 前言 Sphinx是一个可以用于Python的自动文档生成工具,可以自动的把docstring转换为文档,并支持多种输出格式包括html,latex,pdf等 开始 建一个存放文档的do ...
- 使用doctest代码测试和Sphinx自动生成文档
python代码测试并自动生成文档 Tips:两大工具:doctest--单元测试.Sphinx--自动生成文档 1.doctest doctest是python自带的一个模块.doctest有两种使 ...
随机推荐
- 安装networking-sfc
申明: 主参考:https://docs.openstack.org/networking-sfc/queens/ 辅参考: https://blog.csdn.net/linshenyuan1213 ...
- USACO 1.3 Name That Number【暴搜】
裸的穷举搜索. 研究了好久怎么输入$dict.txt$,$USACO$好像对$freopen$的顺序还有要求? /* ID: Starry21 LANG: C++ TASK: namenum */ # ...
- 【计算机视觉】【并行计算与CUDA开发】GPU硬解码---DXVA
前面介绍利用NVIDIA公司提供的CUVID库进行视频硬解码,下面将介绍利用DXVA进行硬解码. 一.DXVA介绍 DXVA是微软公司专门定制的视频加速规范,是一种接口规范.DXVA规范制定硬件加速解 ...
- SQL ------ JDBC 删除指定的某条记录
package demo; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; ...
- flask内置的信号
from flask import Flask,request,template_rendered,render_template,got_request_exception from signals ...
- Jenkins学习指南
jenkinshttps://www.cnblogs.com/jimmy-xuli/p/9020825.htmlhttps://www.cnblogs.com/along21/p/10172855.h ...
- vsphere6.7-虚拟机与ESXI时间同步
环境介绍 esxi 6.7+vsphere6.7 需求配置 设置虚拟机时间与esxi时间同步.esxi时间与NTP服务器同步 配置方式 在esxi上开启NTP服务器时间同步,如下图: 修改虚拟服务器的 ...
- 给定进制下1-n每一位数的共享(Digit sum)The Preliminary Contest for ICPC Asia Shanghai 2019
题意:https://nanti.jisuanke.com/t/41422 对每一位进行找循环节规律就行了. #define IOS ios_base::sync_with_stdio(0); cin ...
- Python接口开发小知识
关于数据库设计 接口开发多学习数据库表操作,这是要点 不存在删除数据,每个可能被删除数据的表加一个is_active属性 不同的表可以有多个相同的字段,字段属性少用禁止非空 不要设置太多主外键(高内聚 ...
- DashBoard-身份验证
dashboard1.7.1版本之后,新增了用户登录认证的功能. 默认dashboard会跳转到登录页面: 我们可以看到dashboard提供了Kubeconfig和token两种登录方式,我们可以直 ...