一. 前言
1. 简介
- Gin是一个golang的微框架,封装比较优雅,API友好,源码注释比较明确,具有快速灵活,容错方便等特点
- 对于golang而言,web框架的依赖要远比Python,Java之类的要小。自身的
net/http足够简单,性能也非常不错 - 借助框架开发,不仅可以省去很多常用的封装带来的时间,也有助于团队的编码风格和形成规范
2. 安装
- 安装go 1.13+
- 下载并引入
go get -u github.com/gin-gonic/gin
- 将 gin 引入到代码中:
import "github.com/gin-gonic/gin"
- 如果使用
http.StatusOK之类的常量,则需要引入net/http包
二. HelloWorld
package main
import (
"net/http"
"github.com/gin-gonic/gin"
)
func main() {
// 1.创建路由
r := gin.Default()
// 2.绑定路由规则,执行的函数
// gin.Context,封装了request和response
r.GET("/", func(c *gin.Context) {
c.String(http.StatusOK, "hello World!")
})
// 3. 监听端口
// r.Run() 默认监听8080
r.Run(":7890")
}
访问根路径即可
三. 工作流程
1. 核心对象
Engine:容器对象,是整个 Gin 框架的基础
Engine.trees:负责存储路由和 handle 方法的映射,类似字典树的结构
Engine.RouterGroup:RouteGroup 结构体中的 Handlers 存储着所有的中间件。
Context:上下文对象,负责处理请求和响应,其中的 handlers 存储处理请求时中间件和处理方法。
2. 启动流程
- 启动main函数
- 初始化Gin:
gin.Default()执行Gin的初始化过程,Default() 函数中通过 gin.New() 方法来初始化 Engine 容器 - r.GET() 注册路由:通过 GET 方法将路由映射到指定的函数。
- 启动Gin:
r.Run()负责启动Gin Engine,开始监听请求并提供HTTP服务。