一、介绍
Gin是一个Go编写的轻量级的http web框架,运行速度非常快。它被广泛用于构建高性能的 Web 应用程序和 API。Gin可通过使用前缀树结构存储,减少内存消耗,同时加快了路由查询速度,并且在基本功能的基础上提供了各种middleware,可以在访问对应的url时回调对应的handler。
二、框架的应用
一个Gin示例
package main
import (
"github.com/gin-gonic/gin"
)
func main() {
// 创建一个默认的路由引擎
r := gin.Default()
// GET:请求方式;/hello:请求的路径
// 当客户端以GET方法请求/hello路径时,会执行后面的匿名函数
r.GET("/hello", func(c *gin.Context) {
// c.JSON:返回JSON格式的数据
c.JSON(200, gin.H{
"message": "Hello world!",
})
})
// 启动HTTP服务,默认在0.0.0.0:8080启动服务
r.Run() // r.Run(":8080")
}
按类似的代码格式配置好后即可运行项目,后续改变端口可运行其他程序和功能。
1. RESTful API 开发
REST是一种软件架构风格,简单来说,REST的含义就是客户端与Web服务器之间进行交互的时候,使用HTTP协议中的4个请求方法代表不同的动作。
- GET用来获取资源
- POST用来新建资源
- PUT用来更新资源
- DELETE用来删除资源。
2. HTML渲染
gin框架中使用LoadHTMLGlob() 或者LoadHTMLFiles()方法进行HTML模板渲染,其中主要包括静态文件处理、JSON渲染、XML渲染
3.重定向
HTTP 重定向很容易。内部、外部重定向均支持。路由重定向,使用HandleContext。
三、Gin 框架的实践
1. Gin路由
普通路由如:r.Any("/test", func(c *gin.Context){...})
路由原理 Gin框架中的路由使用的是httprouter这个库。
其基本原理就是构造一个路由地址的前缀树。
2. 使用中间件
Gin框架允许开发者在处理请求的过程中,加入用户自己的钩子(Hook)函数。这个钩子函数就叫中间件。中间件可以用于处理身份验证、日志记录、错误处理等通用任务,使得代码更加模块化和可维护。