Go Web轻量级框架Gin学习系列:安装与使用

原创做者,公众号【程序员读书】,欢迎关注公众号,转载文章请注明出处哦。git

虽然Go标准库net/http对使用Go开发Web应用提供很是强大的支持,然而对于想要快速开发并及上线项目的团队来讲,使用Web框架不失为一种更好的选择。程序员

Go社区中,有许多很是优秀的Web框架,如Gin,Iris,Echo,Martini,Revel以及国人开发的Beego框架。github

Gin的优势

  • 快速:基于Radix树的路由,性能很是强大。
  • 支持中间件:内置许多中间件,如Logger,Gzip,Authorization等。
  • 崩溃恢复:能够捕捉panic引起的程序崩溃,使Web服务能够一直运行。
  • JSON验证:能够验证请求中JSON数据格式。
  • 路由分组:支持路由分组(RouteGroup),能够更方便组织路由。
  • 错误管理机制:能够收集程序中的错误
  • 多种数据渲染方式:支持HTMLJSONYAMLXML等数据格式的响应。
  • 扩展性:很是简单扩展中间件。
  • 数据验证器:支持数据验证器且能够自定义。

安装与使用

Gin目前最新的版本是V1.3.0,其安装过程很是简单,不过在安装Gin以前,须要安装Go1.6或以上的版本(后续版本可能要Go1.8或以上),下面介绍两种安装方式。bash

直接安装

$  go get -u github.com/gin-gonic/gin //使用-u安装最新版本
复制代码

使用Govendor安装

提示:Govendor是使用Go语言开发Go项目依赖管理工具。框架

  1. 安装Govendor
$ go get github.com/kardianos/govendor
复制代码
  1. 安装Gin
$ govendor init
$ govendor fetch github.com/gin-gonic/gin@v1.3
复制代码

简单示例

经过上面的两种方式安装好Gin以后,下面经过一个简单示例看看怎么Gin使用开发Web应用。工具

import "github.com/gin-gonic/gin"
func main(){
    r := gin.Default()
    r.GET("/test",func(c *gin.Context){
        c.JSON(200,gin.H{"hello":"world"})
    })
    r.Run()
}
复制代码

能够看到,使用gin开发一个Web服务是很简单的一件事情,能够简单地分解为四步:性能

1. 导入gin包

在咱们安装Gin框架的时候,已经将gin包安装到本地,若是使用go get命令安装的,则这个包路径为$GOPATH/src/github.com/gin-gonic/gin,而咱们只须要使用import命令即可以将包导入。fetch

import "github.com/gin-gonic/gin"
复制代码
2. 建立路由

使用gin.Default()方法会返回gin.Engine实例,表示默认路由引擎。spa

r := gin.Default()
复制代码

经过这种方式建立的gin.Engine,会默认使用Logger和Recovery两个中间件,能够用gin.New()方法建立一个不包含任何中间件的默认路由。code

r := gin.New()
复制代码
3. 定义处理HTTP的方法

经过默认路由,咱们能够建立处理HTTP请求的方法,示例中使用GET方法:

r.GET("/test",func(c *gin.Context){
    c.JSON(200,gin.H{"hello":"world"})
})
复制代码

Gin支持全部通用的HTTP请求方法:GET,POST,PUT,PATCH,OPTIONS,HEAD,DELETE,其使用方式与上面例子相同,如POST:

r.POST("/test",func(c *gin.Context){
    c.JSON(200,gin.H{"hello":"world"})
})
复制代码

每种方法都只处理对应的HTTP请求,使用Any方法则能够处理任何的HTTP请求。

r.Any("/test",func(c *gin.Context){
    c.JSON(200,gin.H{"hello":"world"})
})
复制代码
4. 监听端口

定义好请求以后,使用Run()方法即可监听端口,开始接受HTTP请求,若是Run()方法没有传入参数的话,则默认监听的端口是8080。

r.Run() //r.Run(":3000")
复制代码

小结

Gin是一个Go Web开发的轻量级框架,使用也很是地简单,容易上手,可是,使用Gin开发前,仍是须要对Go原生支持的net/http有所了解。

你的关注,是我写做路上最大的鼓励!

相关文章
相关标签/搜索