• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Go Gin框架学习

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

什么是Gin?

  Gin 是一个用 Go (Golang) 编写的 HTTP web 框架。 它是一个类似于 martini 但拥有更好性能的 API 框架, 优于 httprouter,速度提高了近 40 倍。

  而且封装比较优雅,API友好,源码注释比较明确,具有快速灵活,容错方便等特点

  对于golang而言,web框架的依赖要远比Python,Java之类的要小。自身的net/http足够简单,性能也非常不错

  文档:https://gin-gonic.com/zh-cn/docs/

 

 

Gin安装使用:

  要求:Go 1.13 及以上版本

  要安装Gin软件包,您需要安装Go并首先设置Go工作区。

    1、首先需要安装Go(需要1.13+版本),然后可以使用下面的Go命令安装Gin。

      go get -u github.com/gin-gonic/gin

    2、将 gin 引入到代码中:

      import "github.com/gin-gonic/gin"

    3、(可选)如果使用诸如 http.StatusOK 之类的常量,则需要引入 net/http 包:

      import "net/http"

 

 

快速开始:

  1、创建一个名为GinDemo.go的文件, touch GinDemo.go

  2、GinDemo.go代码如下:

package main

import "github.com/gin-gonic/gin"

func main() {
    r := gin.Default()
    r.GET("/ping", func(c *gin.Context) {
        c.JSON(200, gin.H{
            "message": "pong",
        })
    })
    r.Run() // 监听并在 0.0.0.0:8080 上启动服务
}

  3、执行 go run  GinDemo.go 命令来运行代码:

# 运行 example.go 并且在浏览器中访问 0.0.0.0:8080/ping
$ go run example.go

   启动日志:

[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.

[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
 - using env:    export GIN_MODE=release
 - using code:    gin.SetMode(gin.ReleaseMode)

[GIN-debug] GET    /                         --> main.main.func1 (3 handlers)
[GIN-debug] [WARNING] You trusted all proxies, this is NOT safe. We recommend you to set a value.
Please check https://pkg.go.dev/github.com/gin-gonic/gin#readme-don-t-trust-all-proxies for details.
[GIN-debug] Listening and serving HTTP on :8000

 

 

 

Gin路由:

  基本路由:gin框架中采用的路由是基于httprouter做的,也支持Restful风格的API

  API参数:可以通过Context的Param方法来获取API参数

  URL参数:可以通过DefaultQuery()或Query()方法获取,DefaultQuery()若参数不存在,返回默认值,Query()若不存在,返回空串

  表单参数:表单传输为post请求,http常见的传输格式为四种:

    application/json

    application/x-www-form-urlencoded

    application/xml

    application/form-data

    表单参数可以通过PostFrom()方法获取,该方法默认解析的是x-www-form-urlencoded或from-data格式的参数

  routes group:routes group是为了管理一些相同的URL

func main() {
   // 1.创建路由
   // 默认使用了2个中间件Logger(), Recovery()
   r := gin.Default()
   // 路由组1 ,处理GET请求
   v1 := r.Group("/v1")
   // {} 是书写规范
   {
      v1.GET("/login", login)
      v1.GET("submit", submit)
   }
   v2 := r.Group("/v2")
   {
      v2.POST("/login", login)
      v2.POST("/submit", submit)
   }
   r.Run(":8000")
}

 

  运行main方法即可启动gin项目:go run main.go

 

Jsoniter:

  Gin 使用 encoding/json 作为默认的 json 包,但是你可以在编译中使用标签将其修改为 jsoniter。

    go build -tags=jsoniter

 

 

 

END.


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap