Go Web 框架 Gin 实践8—为它加上Swagger,帅帅的文档

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go Web 框架 Gin 实践8—为它加上Swagger,帅帅的文档相关的知识,希望对你有一定的参考价值。

参考技术A

一个好的 API\'s,必然离不开一个好的API文档

要开发纯手写 API 文档,不存在的 :=)

项目地址:https://github.com/EDDYCJY/go-gin-example

1、go get

若 $GOPATH/bin 没有加入$PATH中,你需要执行将其可执行文件移动到$GOBIN下

2、gopm get

该包有引用golang.org上的包,若无科学上网,你可以使用 gopm 进行安装

同理将其可执行文件移动到$GOBIN下

注:三个包都有一定大小,安装需要等一会或要科学上网

编写API注释

Swagger 中需要将相应的注释或注解编写到方法上,再利用生成器自动生成说明文件

gin-swagger 给出的范例:

我们可以参照 Swagger 的注解规范和范例去编写

详细的注解请参见 go-gin-example。以确保获取最新的 swag 语法

我们进入到gin-blog的项目根目录中,执行初始化命令

完毕后会在项目根目录下生成docs

docs/

├── docs.go

└── swagger

├── swagger.json

└── swagger.yaml

我们可以检查 docs.go 文件中的 doc 变量,详细记载中我们文件中所编写的注解和说明

大功告成,访问一下 http://127.0.0.1:8000/swagger/index.html, 查看 API 文档生成是否正确。是不是很帅?

本系列示例代码

2021-05-21 对比GO的Web框架Gin和Beego

对比GO的Web框架Gin和Beego

本人的Git新建了一个Go_Project
链接:https://github.com/DianaTSY/GO_Project.git

我尝试了2个web项目,其中一个使用了gin框架,另一个运用了beego框架

两个项目的前端都使用的是HTML结合Bootstrap库的css(运用CDN) + Mysql

对我个人而言,我更偏向于gin框架
因为在数据库操作的时候更简单,也更容易理解(我在这里频频出错)

主要的不同:

  1. 路由配置层面
g.GET("/index", func(c *gin.Context) 
		c.HTML(http.StatusOK, "index.html", nil)
	)
//或者
router.POST("/signup", service.AddUser)
beego.Router("/index",&controllers.IndexController,"get:Get")
  1. 逻辑层面
    gin项目里我用不同的servcie接口来控制不同的活动
    beego里面则用的是beego框架的controller

  2. 数据库层面
    gin偏向于本身的sql语句,使用数据库的时候正常初始化就好了
    beego则是必须调用Ormer接口进行一些列注册,使用也必须依据规范

  3. 与前端交互层面
    – gin用的是gin.Context 的HTML()方法
    e.g. c.HTML(http.StatusOK,"signup.html",gin.H"res":r) 其中r是要向前端传输的数据
    – beego用的是其beego.Controller里的c.TplNamer
    e.g. c.TplName = "signup.html" 如果要向前端传输数据则需要另外***c.Data["res"] = r***

总的来说两个都是Go语言中写web项目的好框架,但按照个人习惯来说个人偏向于gin框架,嘻嘻

关于GO大家还有没有感兴趣的项目想让我替你们尝试一下呢?有就留言吧
继续愉快学习
涂涂努力ing

以上是关于Go Web 框架 Gin 实践8—为它加上Swagger,帅帅的文档的主要内容,如果未能解决你的问题,请参考以下文章

编程实践Go Web开发:使用Gin快速实现一个HTTP接口

Go语言web框架 gin

Go的web框架——Gin初识

Go语言系列第三方框架和库——GIN:GIN介绍

2021-05-21 对比GO的Web框架Gin和Beego

2021-05-21 对比GO的Web框架Gin和Beego