Gin简介和环境搭建

Gin是一个使用Go语言编写的轻量级Web框架,Gin框架具有设计良好的API和优秀的性能表现,是使用Go语言开发HTTP接口的最佳选择之一。此外Gin是十分轻量级的,学习曲线十分平滑,框架本身也很容易和其它组件整合,符合小而美的设计哲学。本系列笔记会介绍Gin框架的用法,主要针对API接口和WebSocket服务端的编写,但不会介绍后端模板相关的内容,因为后端MVC开发方式已经趋于落后和非主流了。

项目官网:https://gin-gonic.com/zh-cn/

Gin框架基本概念

Gin底层基于Go语言的net/http包进行了一些高级的抽象和封装。

路由:路由通过一定的匹配模式对HTTP请求的URL进行匹配,并分配一个处理函数来处理请求内容。

处理函数:Gin的处理函数接收一个*gin.Context类型参数,HTTP请求的各种信息都可以从这个请求上下文中获取,函数体内读取请求内容,并返回响应数据。

中间件:Gin的中间件同样接收*gin.Context类型参数,也可以获取到请求信息,中间件用于在具体的处理函数前后执行一些操作。

我们使用Gin框架开发时,其实就是围绕这3个组件来编写代码的。

安装Gin依赖

下载并安装Gin可以在工程中执行以下命令:

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

Gin框架使用例子

Gin框架使用非常简单,我们直接编写一个例子,启动Web服务并返回一段JSON数据。

package main

import (
    "fmt"
    "github.com/gin-gonic/gin"
)

func main() {
    engine := gin.Default()
    engine.GET("/", func(context *gin.Context) {
        context.JSON(200, gin.H{
            "message": "hello, world!",
        })
    })
    err := engine.Run(":8080")
    if err != nil {
        fmt.Println(err)
        return
    }
}

代码中,我们首先调用了gin.Default()方法,它返回了*Engine指针,这个对象代表整个Gin服务。

之后,我们使用engine.Get()方法创建了一条对应GET /路径的路由,在处理函数中,我们调用context.JSON()方法使其返回一段JSON数据,此外还用到了gin.H方法来创建一条JSON数据。gin.H其实是map[string]interface{}的一个简写,由于JSON十分常用,因此Gin提供了这样的一个快捷的自定义类型供我们使用。

代码的最后,我们调用了engine.Run()方法并指定服务监听8080端口,代码运行到这里时如果没有出错,实际上主线程就会阻塞,Gin框架便可以开始处理请求了。

作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。