【Golang】Golang轻量级框架Gin
简介
Gin是一款轻量级golang框架,他在Go web开发中使用率是很高的。
Gin框架特点
1. 使用简单。
2. 并发高。
3. 内存占用少。
下图是各个web框架压测对比,吞吐量越高越好。
Gin框架安装
安装要求:go版本大于等于1.12(使用go Module)
下面开始安装
#创建项目目录
mkdir -p /Users/songguojun/Documents/code/gopath/src/github.com/songguojun/ginProject #进入上面创建的目录 cd /Users/songguojun/Documents/code/gopath/src/github.com/songguojun/ginProject #初始化 go mod init ginProject #下载gin代码 go get -v github.com/gin-gonic/gin@v1.4
在ginProject目录下在创建目录start,然后进入start目录新建文件main.go
package main import ( "github.com/gin-gonic/gin" ) func main() {
//创建路由 r := gin.Default() //绑定路由及执行函数 gin.Context封装了HTTP协议中的请求信息和响应信息 r.GET("/index", func(c *gin.Context) { c.JSON(200, gin.H{ "message" : "hello Gin", }) }) r.Run() //启动服务 默认监听端口8080 }
运行
然后浏览器访问http://127.0.0.1:8080/index 输出{"message":"hello Gin"},说明运行成功。
请求路由
Gin框架中采用的路由库是httprouter,地址是 https://github.com/julienschmidt/httprouter。
1. 多种请求类型。
package main import ( "github.com/gin-gonic/gin" ) func main() { r := gin.Default() //设置路由 r.GET("/get", func(c *gin.Context) { c.String(200, "get") }) r.POST("/post", func(c *gin.Context) { c.String(200, "post") }) r.Handle("DELETE", "/delete", func(c *gin.Context) { c.String(200, "delete") }) r.Any("/any", func(c *gin.Context) { //支持8种请求类型 c.String(200, "any") }) r.Run() //启动服务 默认端口8080 }
通过 curl -X GET "http://127.00.1:8080/get" 测试。
2. 绑定静态文件夹。
3. 参数作为URL。
4. 泛绑定。
中间件
gin.Default()方法里面就已经实现了两个中间件Logger和Recovery。