Gin框架学习 (一)

1.Gin是什么?

Gin是golang的轻量级Web框架,具有高性能的优点。

代码仓库地址:https://github.com/gin-gonic/gin
Gin中文说明文档:https://www.kancloud.cn/shuangdeyu/gin_book/949414

Gin的Hello World

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() // listen and serve on 0.0.0.0:8080
}

代码中的 gin.H是 map[string]interface{} 的一个快捷名称 ,写起来会更加简洁:

type H map[string]interface{
   }

2.Gin的优势?

  1. Gin是用Golang编写的Web框架。它是一个类似于martini但拥有更好性能的API框架,由于底层基于httprouter,速度提高了40倍,因此具有很高的性能和效率
  2. Gin当前是Go语言环境下最受欢迎的WEB框架

httprouter是一个高性能路由分发器,它负责将不同方法的多个路径分别注册到各个handle函数,当收到请求时,负责快速查找请求的路径是否有相对应的处理函数,并且进行下一步业务逻辑处理。

golang的gin框架采用了httprouter进行路由匹配,httprouter 是通过基数树(radix tree)来进行高效的路径查找;同时路径还支持两种通配符匹配。

前缀树和基数树(radix tree)的区别

拓展:
Go 语言最流行的两个轻量级 Web 框架分别是 Gin 和 Echo,这两个框架大同小异,都是插件式轻量级框架,背后都有一个开源小生态来提供各式各样的小插件,这两个框架的性能也都非常好,裸测起来跑的飞快。

https://zhuanlan.zhihu.com/p/148022541

golang的6个最佳web框架:
Beego: 一个Go语言下开源的,高性能Web框架

  • https://github.com/astaxie/beego
  • https://beego.me

Buffalo: 一个Go语言下快速Web开发框架

  • https://github.com/gobuffalo/buffalo
  • https://gobuffalo.io

Echo: 一个高性能,极简的Web框架

  • https://github.com/labstack/echo
  • https://echo.labstack.com

Gin: 一个Go语言写的HTTP Web框架。它提供了Martini风格的API并有更好的性能。

  • https://github.com/gin-gonic/gin
  • https://gin-gonic.github.io/gin

Iris: 目前发展最快的Go Web框架。提供完整的MVC功能并且面向未来。

  • https://github.com/kataras/iris
  • https://iris-go.com

Revel: 一个高生产率,全栈Go语言的Web框架。

  • https://github.com/revel/revel
  • https://revel.github.io

3.Gin的功能特性?

(1) gin.Engine

Engine 是 Gin 框架最重要的数据结构,它是框架的入口。我们通过 Engine 对象来定义服务路由信息、组装插件、运行服务。

Engine 对象很简单,因为引擎最重要的部分 —— 底层的 HTTP 服务器使用的是 Go 语言内置的 http server,Engine 的本质只是对内置的 HTTP 服务器的包装,让它使用起来更加便捷。

gin.Default() 函数会生成一个默认的 Engine 对象,里面包含了 2 个默认的常用插件,分别是 Logger 和 Recovery,Logger 用于输出请求日志,Recovery 确保单个请求发生 panic 时记录异常堆栈日志,输出统一的错误响应。

func Default() *Engine {
   
    engine := New()
    engine.Use(Logger(), Recovery())
    return engine
}
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值