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

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

ruisui884个月前 (02-22)技术分析15

最近简单的学习了一下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接口文档” 的相关文章

管理费用预算管理办法

第一章 总则第一条 为实现公司各项经营指标,控制费用开支,规范管理费用预算,特制定本办法。第二条 本办法适用于公司内各部门的管理费用预算工作。第三条 职责划分(一)各职能部门,负责提出部门预算目标及确定依据,编制部门预算,并执行预算方案。(二)财务部门,负责汇总、审查、分析、平衡各部门预算,提出调整...

抖音 Android 性能优化系列:启动优化实践

启动性能是 APP 使用体验的门面,启动过程耗时较长很可能使用户削减使用 APP 的兴趣,抖音通过对启动性能做劣化实验也验证了其对于业务指标有显著影响。抖音有数亿的日活,启动耗时几百毫秒的增长就可能带来成千上万用户的留存缩减,因此,启动性能的优化成为了抖音 Android 基础技术团队在体验优化方向...

vue-router是如何解析query参数呢? #前端

vue-router 中的 query 解析。1. 大家好,我是龙仔。今天来分享 vue-router 是如何解析快乐参数的,因为使用 vue 路由会传 query 参数和快乐参数,所以从 vue 的角度来看如何解析传递的快乐参数。2. 基础知识大家应知道,快乐参数结构如:a、b、c、a、b、c、a...

一起学Vue:路由(vue-router)

前言学习vue-router就要先了解路由是什么?前端路由的实现原理?vue-router如何使用?等等这些问题,就是本篇要探讨的主要问题。vue-router是什么路由是什么?大概有两种说法:从路由的用途上来解释路由就是指随着浏览器地址栏的变化,展示给用户的页面也不相同。从路由的实现原理上来解释路...

VUE-router

七.Vue-router1、什么是vue-routervue-router是vue.js官方路由管理器。vue的单页应用是基于路由和组件的,路由用于设定访问路径,并将路径和组件映射起来。传统页面切换是用超链接a标签进行切换。但vue里是用路由,因为我们用Vue做的都是单页应用,就相当于只有一个主的i...

22《Vue 入门教程》VueRouter 路由嵌套

1. 前言本小节我们介绍如何嵌套使用 VueRouter。嵌套路由在日常的开发中非常常见,如何定义和使用嵌套路由是本节的重点。同学们在学完本节课程之后需要自己多尝试配置路由。2. 配置嵌套路由实际项目中的应用界面,通常由多层嵌套的组件组合而成。同样地,URL 中各段动态路径也按某种结构对应嵌套的各层...