Gin框架基础 | 青训营

90 阅读2分钟

一、介绍

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)函数。这个钩子函数就叫中间件。中间件可以用于处理身份验证、日志记录、错误处理等通用任务,使得代码更加模块化和可维护。