Go语言的Gin框架快速入门篇
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.Gin框架概述
1>.Go语言的Web框架概述
框架就是别人写好的代码我们可以直接使用,这个代码是专门针对一个开发方向定制的。例如,我们要做一个网站,利用框架就能非常块的完成网站的开发,如果没有框架,每个细节都需要我们处理,开发时间会大大降低。 Go语言常见的web框架有beego,gin,echo,iris等等。值得一提的是,beego框架是咱们国人谢孟军开发的,其地位和Python的Django有点类似,而gin框架的地位和python的flask有点类似。 综上所述,如果你要做纯web开发推荐大家使用beego,如果你仅仅是为了写一些后端API接口推荐大家使用gin框架,今天我们就一起来学习一下Gin框架。 博主推荐阅读: https://beego.me/ https://github.com/gin-gonic/gin
2>.Gin框架概述
gin是使用golang开发的web框架.简单易用,高性能(是httprouter的40倍),适用于生产环境
gin特点如下:
快:
路由使用基数树,低内存,不使用反射;
中间件注册:
一个请求可以被一系列的中间件和最后的action处理
奔溃处理:
gin可以捕获panic使应用程序可用
JSON校验:
将请求的数据转换为JSON并校验
路由组:
更好的组织路由的方式,无限制嵌套而不影响性能
错误管理:
可以收集所有的错误
内建渲染方式:
JSON,XML和HTML渲染方式
可继承:
简单的去创建中间件
3>.Gin框架运行原理
MVC模型如下所示:
模型(Model):
数据库管理与设计。
控制器(Controller):
处理用户输入的信息,负责从视图读取数据,控制用户输入,并向模型发送数据源,是应用程序中处理用户交互的部分,负责管理与用户交互控制。
视图(View):
将信息显示给用户。
Gin框架的运行流程如下图所示。
4>.Gin和Beego框架对比
MVC:
Gin框架不完全支持,而beego完全支持。
Web功能:
Gin框架支持的不全面,比如Gin框架不是支持正则路由,不支持session。而beego支持的很全面。
使用场景:
Gin适合使用在封装API接口,而beego适合web项目。
5>.安装Gin组件
go get github.com/gin-gonic/gin
6>.Hello World案例
package main import "github.com/gin-gonic/gin" func main() { /** 所有的接口都要由路由来进行管理。 Gin的路由支持GET,POST,PUT,DELETE,PATCH,HEAD,OPTIONS等请求 同时还有一个Any函数,可以同时支持以上的所有请求。 创建路由(router)并引入默认中间件 在源码中,首先是New一个engine,紧接着通过Use方法传入了Logger()和Recovery()这两个中间件。 其中 Logger 是对日志进行记录,而 Recovery 是对有 painc时, 进行500的错误处理。 创建路由(router)无中间件 router := gin.New() */ router := gin.Default() //定义路由的GET方法及响应的处理函数 router.GET("/hello", func(c *gin.Context) { //将发送的消息封装成JSON发送给浏览器 c.JSON(200, gin.H{ //这是咱们定义的数据 "message": "Hello World!", }) }) //启动路由并指定监听的地址及端口,若不指定默认监听0.0.0.0:8080 router.Run("127.0.0.1:9000") }