Go gin框架 使用swagger生成API文档
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文档的更多相关文章
- golang gin框架 使用swagger生成api文档
github地址:https://github.com/swaggo/gin-swagger 1.下载swag $ go get -u github.com/swaggo/swag/cmd/swag ...
- .Net Core 3.1 WebApi使用Swagger生成Api文档
用swagger生成Api文档 1.安装Swashbuckle.AspNetCore 右键单击"解决方案资源管理器" > "管理 NuGet 包"中的项目 ...
- 使用swagger生成API文档
有时候一份清晰明了的接口文档能够极大地提高前后端双方的沟通效率和开发效率.本文将介绍如何使用swagger生成接口文档. swagger介绍 Swagger本质上是一种用于描述使用JSON表示的RES ...
- 12 Django Rest Swagger生成api文档
01-简介 Swagger:是一个规范和完整的框架,用于生成.描述.调用和可视化RESTful风格的Web服务.总体目标是使客户端和文件系统源代码作为服务器以同样的速度来更新.当接口有变动时,对应的接 ...
- Laravel(PHP)使用Swagger生成API文档不完全指南 - 基本概念和环境搭建 - 简书
在PHPer中,很多人听说过Swagger,部分人知道Swagger是用来做API文档的,然而只有少数人真正知道怎么正确使用Swagger,因为PHP界和Swagger相关的资料实在是太少了.所以鄙人 ...
- ASP.NET Core 3.0 WebApi中使用Swagger生成API文档简介
参考地址,官网:https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/getting-started-with-swashbuckle?view ...
- 浅析如何在Nancy中使用Swagger生成API文档
前言 上一篇博客介绍了使用Nancy框架内部的方法来创建了一个简单到不能再简单的Document.但是还有许许多多的不足. 为了能稍微完善一下这个Document,这篇引用了当前流行的Swagger, ...
- Spring MVC中使用Swagger生成API文档和完整项目示例Demo,swagger-server-api(二十)
一:Swagger介绍 Swagger是当前最好用的Restful API文档生成的开源项目,通过swagger-spring项目 实现了与SpingMVC框架的无缝集成功能,方便生成spring r ...
- Spring MVC中使用Swagger生成API文档和完整项目示例Demo,swagger-server-api
本文作者:小雷FansUnion-一个有创业和投资经验的资深程序员-全球最大中文IT社区CSDN知名博主-排名第119 实际项目中非常需要写文档,提高Java服务端和Web前端以及移动端的对接效率 ...
随机推荐
- 这么高颜值的Kubernetes管理工具Lens,难道还不能C位出道吗
1 前言 欢迎访问南瓜慢说 www.pkslow.com获取更多精彩文章! Docker & Kubernetes相关文章:容器技术 一直使用官方的Kubernetes Dashboard来管 ...
- python安装wordcloud库报错
pip install wordcloud 安装成了这样 红彤彤的一片 解决方法 https://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud 下载对应版 ...
- Docker 私有镜像仓库的搭建及认证
DockerHub 为我们提供了很多官方镜像和个人上传的镜像,我们可以下载机构或个人提供的镜像,也可以上传我们自己的本地镜像,但缺点是: 由于网络的原因,从 DockerHub 下载和上传镜像速度可能 ...
- wampserver64 apache2.4版本局域网互相访问总结
wampserver64 apache2.4版本局域网互相访问总结 背景:在我的电脑上给算法组开发了一个工具,需要在局域网环境下其他同事都能访问到,搞了一下午终于搞定,于是整理了这篇文档,给其他同行 ...
- private protected internal public
//C#中的访问修饰符: //private,私有访问修饰符,被private访问修饰符修饰的成员只有在当前类的内部可以访问,其他地方一律不能访问[类中成员,如果不写访问修饰符则默认都是私有的] // ...
- Android反解符号表工具
cd ~/android-ndk-r13b/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin ./arm-linux-an ...
- 最通俗易懂的 Redis 架构模式详解
前言 话说有一名意大利程序员,在 2004 年到 2006 年间主要做嵌入式工作,之后接触了 Web,2007 年和朋友共同创建了一个网站,并为了解决这个网站的负载问题(为了避免 MySQL 的低性能 ...
- 网址中的静态资源 public
客户端浏览器收到的HTML响应内容中如果带有 link img script video audio 等带有src或者href标签时候,这些都是外部链接资源请求url.浏览器会默认自动性的对这些资源 ...
- java向上转型神解析
向上转型 经典案例 向上转型 向上转型应注意的问题 向上转型的好处 静态方法的调用 经典案例 public class Animal { public void eat(){ System.out.p ...
- 读取文本文件中的中文打印到Eclipse控制台为何显示问号
原因:未将文本文件存为utf-8编码格式而是ascii编码格式.