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

  • 相关阅读:
    python 输出所有列表元素的乘积
    shell 变量赋值运算
    shell 判断变量是否为空
    js 获取地址栏域名以及URL
    python 获取列表大于指定长度的元素
    python 判断列表字符串元素首尾字符是否相同
    python 通过列表元素值截取列表并获取长度
    python 判断两个列表是否有公共元素
    python 获取列表的键值对
    python 判断列表的包含关系
  • 原文地址:https://www.cnblogs.com/songgj/p/9136092.html
Copyright © 2020-2023  润新知