【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。

原文地址:https://www.cnblogs.com/songgj/p/9136092.html