gin 生成api文档_Go gin框架 使用swagger生成API文档

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

下载安装 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))

注释参数

主程序注释(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 [email protected]

// @Description 获取应用中心操作日志

// @Tags operationlog

// @Param Authorizationheader 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 [email protected]

// @Description 新增模版

// @Tags release template

// @Param Authorizationheaderstring true "Bearer 31a165baebe6dec616b1f8f3207b4273"

// @Param body bodyReleaseTemplateAdd true "JSON数据"

// @Success 200 {object} handler.ReportJSONResult

// @Router/api/v1/release/template/add [post]

func ReleaseTemplateAdd(c *gin.Context){

}

以上生成格式文档如下:

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

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

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前端以及移动端的对接效率 ...

Web Api 2.0中使用Swagger生成Api文档的2个小Tips

当Web Api 2.0使用OAuth2授权时,如何在Swagger中添加Authorization请求头? Swagger说明文档支持手动调用Api, 但是当Api使用OAuth2授权时,由于没有地 ...

.NET Core和Swagger 生成 Api 文档

测试/生产环境的BUG 这里更新一下在本地调试正常,在INT/PROD上抛错,错误信息为: */**/*.xml(Swagger json file) 文件找不到,在startup 里builder ...

随机推荐

left join 等连接查询遇到同名字段覆盖问题

可以在查询时给字段赋别名,但是需要注意以下:*的位置要在最前面,放在其他地方都会出错.这种写法同名覆盖的字段还在,然后在*的后面加上别名字段,已经可以满足所有需求了 SELECT *,r.id as ...

background 、backgroundcolor、background-color 我怎么有点分不清了??

background 可以设置 背景颜色.背景图片.定位等 background-color 只能设置 背景颜色 backgroundColor在js处理css里面,是DOM.style.backgr ...

day11_jsp/EL/JSTL学习笔记

一.jsp概述 JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术. JSP实际上就是Servlet. JSP这门技术的最大 ...

Python中的引用传参

Python中函数参数是引用传递(注意不是值传递).对于不可变类型,因变量不能修改,所以运算不会影响到变量自身:而对于可变类型来说,函数体中的运算有可能会更改传入的参数变量. 引用传参一: >& ...

json,pickle,shelve模块,xml处理模块

常用模块学习—序列化模块详解 什么叫序列化? 序列化是指把内存里的数据类型转变成字符串,以使其能存储到硬盘或通过网络传输到远程,因为硬盘或网络传输时只能接受bytes. 为什么要序列化? 你打游戏过程 ...

socket和http的区别

1.HTTP连接 HTTP协议即超文本传送协议(Hypertext Transfer Protocol ),是Web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种应用 ...

Android 抓包并通过 Wireshark 分析

分析 Android 中 app 的网络数据交互,需要在 Android 上抓包,常用工具为 tcpdump ,用 tcpdump 生成 Wireshark 识别的 pcap 文件,把 pcap 文件 ...

3D游戏与计算机图形学中的数学方法-变换

1变换 在3D游戏的整个开发过程中,通常需要以某种方式对一系列的向量进行变换.通常用到的变换包括平移,缩放和旋转. 1.1通用变换 通常可将n x n可逆矩阵M看成是一个从坐标系到另一个坐标系的变换矩 ...

Qt下Doxygen使用

版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Qt下Doxygen使用     本文地址:http://techieliang.com/20 ...

QGrapicsScene类

概述 QgraphicsScene类为管理大量的2D图形item提供了一个管理界面,做为item的容器,它配合使用QgraphicsView使用来观察items,例如线,矩形,文本或者自定义的item ...

你可能感兴趣的:(gin,生成api文档)