当前位置:首页 > 技术分析 > 正文内容

中年大叔学编程-Gin-Swagger生成API接口文档

ruisui882个月前 (02-22)技术分析10

最近简单的学习了一下Golang,并且用Gin开发了两个小应用,一个短域名生成,一个微信小程序。感受到了Golang的代码简洁、部署简单、内存占用少、零停机平滑重启等优势。在开发小程序的时候,需要生成接口文档,这里需要用到Gin-Swagger了,所以简单的就来整理一下。

这里我用的环境是:

  • go version go1.14.6 windows/amd64
  • GoLand 2020.2.1
  • gin v1.6.3
  • swag v1.6.7

这里先用Goland新建一个demo项目吧,在新建的时候,我们最好就要把包的代理地址配置好

这里我们需要安装Gin、swag、gin-swagger、files几个包,可以通过命令的方式

go get -u github.com/gin-gonic/gin
go get -u github.com/swaggo/swag/cmd/swag
go get -u github.com/swaggo/gin-swagger
go get -u github.com/swaggo/files

但是在Goland中,会自动获取复制的连接,然后提醒安装,直接点击相应的按钮即可,非常方便。 这里我们新建一个main.go文件,加入如下代码

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

func main() {
	r := gin.New()

	// use ginSwagger middleware to
	r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))

	r.Run()
}

然后进入Terminal中执行swag init

现在,运行项目(默认8080端口)并访问
http://localhost:8080/swagger/index.html

因为现在还没有开发相应的接口,所以什么信息都没有,在开始之前,我们需要先了解一下gin-swagger的注解

  • @Tags 接口分组,相当于归类
  • @Summary 接口的简要描述
  • @Description 接口的详细描述
  • @Id 全局标识符
  • @Version 接口版本号
  • @Accept 发起请求的数据类型
  • @Produce 接口返回的数据类型
  • @Param 请求参数描述
  • @Success 请求成功后返回信息
  • @Failure 请求失败后返回信息
  • @Router 请求的路由路径和请求方式。
  • @contact.name 接口联系人
  • @contact.url 联系人网址
  • @contact.email 联系人邮箱

上面就是一些较为基础的参数说明,当然还有一些更加复杂的,比如@security,@in等,这些以后再说吧,我们就可以在相应的Controller方法上加注解了

// @Tags Demo
// @Id 1
// @Summary 接口Demo
// @Description 接口详细描述信息
// @Produce  json
// @Param id path int true "ID"
// @Success 200 {string} string
// @Failure 400 {string} string
// @Router /api/v1/demo/{id} [get]
// @contact.name 中年大叔学编程
// @contact.email eyiadmin@163.com
func Demo(c *gin.Context)  {
	c.JSON(200,"OK!")
}

在main方法中注册路由

r.GET("/api/v1/demo/:id", controller.Demo)

现在,进入Terminal中再次执行swag init并启动,这时候就可以看到对应的内容了

我们来执行以下看看效果

这样一个API接口文档就有了,而且还方便我们调试。

我只是记录我的学习过程,由于书读得少,可能很多地方表述或者是理解得不对,请轻喷并指正。

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/2164.html

标签: go swagger
分享给朋友:

“中年大叔学编程-Gin-Swagger生成API接口文档” 的相关文章

Ubuntu 24.10发行版登场:Linux 6.11内核、GNOME 47桌面环境

IT之家 10 月 11 日消息,Canonical 昨日发布新闻稿,正式推出代号为 Oracular Oriole 的 Ubuntu 24.10 发行版。新版在内核方面升级到最新 6.11 版本,并采用 GNOME 47 桌面环境。Ubuntu 24.10 发行版调整了内核策略,开始选择最新的上游...

适合旧电脑2022年值得推荐的 10 款轻量级 Linux 发行版

推荐 10 款轻量级Linux 发行版,它们是 2022 年的轻量级、对旧硬件友好的 Linux 发行版。1、Linux LiteLinux Lite 是一款基于#ubuntu# 和 Debian 的、正在不断开发和完善的 Linux 发行版,极好看的 Xfce 桌面,并基于 Ubuntu,采用了...

vue中如何在自定义组件上使用v-model和.sync

自定义事件tips推荐始终使用 kebab-case 的事件名。(v-on会将事件名自动转换为小写,避免匹配不到)changeData ×change-data √自定义组件的v-model用法:父组件定义数据源(不需要定义修改数据的方法),在子组件标签上通过v-model="data...

10分钟搞定gitlab-ci自动化部署

gitlab-ci 是持续集成工具/自动化部署工具,类似 jenkins。持续集成 是将代码集成到共享存储库并尽可能早地自动构建/测试每个更改的实践 - 通常一天几次。概述在编码完成时都会进行打包发布过程,如果每次都手动操作这一步骤就会浪费时间,效率低下。所以就有了持续集成。准备事项请提前安装以下软...

7 招教你轻松搭建以图搜图系统

作者 | 小龙责编 | 胡巍巍当您听到“以图搜图”时,是否首先想到了百度、Google 等搜索引擎的以图搜图功能呢?事实上,您完全可以搭建一个属于自己的以图搜图系统:自己建立图片库;自己选择一张图片到库中进行搜索,并得到与其相似的若干图片。Milvus 作为一款针对海量特征向量的相似性检索引擎,旨在...

30 个纯 HTML5 实现的游戏

浏览器和 JavaScript 的功能逐年不断的变强变大。曾几何时,任何类型的游戏都需要Flash。但随着 HTML5 发展,HTML5 + WebGL 游戏式就慢慢占领着这个舞台。以下是30款流行的游戏,它们可以在所有现代浏览器中运行,并且只使用web技术构建。1. HexGL地址:http://...