什么是Gin框架
Gin是一个golang的微框架,基于 httprouter,封装比较优雅,API友好,源码注释比较明确。具有快速灵活,容错率高,高性能等特点。框架更像是一些常用函数或者工具的集合。借助框架开发,不仅可以省去很多常用的封装带来的时间,也有助于团队的编码风格和形成规范。
Gin框架的特性
- 快速
基于 Radix 树的路由,小内存占用。没有反射。可预测的 API 性能。 - 支持中间件
传入的 HTTP 请求可以由一系列中间件和最终操作来处理。 例如:Logger,Authorization,GZIP,最终操作 DB。 - Crash 处理
Gin 可以 catch 一个发生在 HTTP 请求中的 panic 并 recover 它。这样,你的服务器将始终可用。例如,你可以向 Sentry 报告这个 panic! - JSON 验证
Gin 可以解析并验证请求的 JSON,例如检查所需值的存在。 - 路由组
更好地组织路由。是否需要授权,不同的 API 版本…… 此外,这些组可以无限制地嵌套而不会降低性能。 - 错误管理
Gin 提供了一种方便的方法来收集 HTTP 请求期间发生的所有错误。最终,中间件可以将它们写入日志文件,数据库并通过网络发送。 - 内置渲染
Gin 为 JSON,XML 和 HTML 渲染提供了易于使用的 API。 - 可扩展性
我们想对中间件进行修改或添加中间件非常的简单
Gin框架的安装
Gin框架的安装非常简单,我们只需要打开终端,输入以下命令即可:
go get -u github.com/gin-gonic/gin
当然这样还是不行,我们需要打开终端,到项目路径下,输入go mod init 项目名
,然后新建文件,输入:
package main import "github.com/gin-gonic/gin" func main() { r := gin.Default() }
但是这时候它可能是这样的:
这时候我们在终端输入:
go mod tiddy
像下面这样就可以了:
Gin框架代码示例
我们可以尝试与Web浏览器进行一个简单的交互,尝试在网页中打印一个Hello world
(毕竟是梦的开始),代码如下:
package main import "github.com/gin-gonic/gin" func main() { r := gin.Default() //创建路由 r.GET( "/", func(c *gin.Context) { c.String(200, "hello World") }) r.Run(":8080") }
我们运行它,然后访问http://127.0.0.1:8080/
就可以看到:
说明我们的代码就运行成功了!