Gin 最开始真正需要学的东西只有一个:
txt
路由
因为整个 Web 开发本质上就是:
txt
浏览器发送请求
服务器接收请求
服务器返回数据
而 Gin 最核心的工作:
就是处理这些请求。
所以今天这篇:
只讲 Gin 最最开始、最基础、也是最重要的内容:
txt
Gin 路由
一、什么是 Gin
Gin 是 Go 语言中的 Web 框架。
它专门用来开发:
- 网站后端
- API接口
- Web服务
比如:
txt
登录接口
用户接口
商品接口
订单接口
这些东西:
本质上都是:
txt
路由 + 请求处理
二、安装 Gin
创建项目:
bash
go mod init gin-demo
安装 Gin:
bash
go get -u github.com/gin-gonic/gin
安装完成后:
项目里会出现:
txt
go.mod
go.sum
说明安装成功。
三、第一个 Gin 程序
创建:
txt
main.go
写入代码:
go
package main
import "github.com/gin-gonic/gin"
func main() {
r := gin.Default()
r.GET("/", func(c *gin.Context) {
c.String(200, "hello gin")
})
r.Run()
}
运行:
bash
go run main.go
浏览器访问:
txt
http://localhost:8080
页面显示:
txt
hello gin
你的第一个 Gin 程序就完成了。
四、先理解整个执行流程
很多新手的问题是:
txt
代码会写
但是根本不知道发生了什么
现在把整个流程理清。
第一步
浏览器访问:
txt
http://localhost:8080
第二步
Gin 接收到请求。
第三步
Gin 发现:
go
r.GET("/")
这个路由匹配成功。
第四步
执行:
go
func(c *gin.Context) {
c.String(200, "hello gin")
}
第五步
服务器返回:
txt
hello gin
浏览器显示结果。
五、逐行讲解代码(重点)
1. gin.Default()
go
r := gin.Default()
作用:
txt
创建 Gin 引擎
你可以理解成:
txt
启动了一个 Web 服务器
后面所有路由:
都注册到:
go
r
里面。
2. GET()
go
r.GET("/", func(c *gin.Context) {
})
这里:
txt
GET
表示:
txt
GET请求
也就是浏览器最普通的访问方式。
"/" 是什么
go
"/"
表示:
txt
根路径
也就是:
txt
http://localhost:8080/
func 是什么
go
func(c *gin.Context) {
}
这个函数:
就是请求处理函数。
当有人访问:
txt
/
时:
这个函数就会执行。
六、什么是路由(核心)
路由本质:
URL 和函数的对应关系。
比如:
txt
访问 /login
执行登录逻辑
访问 /user
执行用户逻辑
这就是:
txt
路由
示例
go
r.GET("/hello", func(c *gin.Context) {
c.String(200, "hello")
})
r.GET("/user", func(c *gin.Context) {
c.String(200, "user")
})
访问:
txt
/hello
返回:
txt
hello
访问:
txt
/user
返回:
txt
user
七、HTTP 请求方式
Web 开发里:
不仅仅只有 GET。
常见请求:
| 方法 | 作用 |
|---|---|
| GET | 获取数据 |
| POST | 提交数据 |
| PUT | 修改数据 |
| DELETE | 删除数据 |
1. GET
最常见。
go
r.GET("/hello", func(c *gin.Context) {
})
浏览器直接访问:
就是 GET 请求。
2. POST
go
r.POST("/login", func(c *gin.Context) {
c.String(200, "login success")
})
POST 一般用于:
- 登录
- 注册
- 提交表单
八、返回数据
Gin 最重要的工作之一:
就是:
txt
返回响应
1. 返回字符串
go
c.String(200, "hello gin")
含义:
txt
状态码:200
返回内容:hello gin
2. 状态码是什么
txt
200
表示:
txt
请求成功
常见状态码:
| 状态码 | 含义 |
|---|---|
| 200 | 成功 |
| 404 | 找不到页面 |
| 500 | 服务器错误 |
九、Context 初步理解
很多新人最怕:
go
c *gin.Context
实际上你现在只需要记住一句话:
Context 用来处理请求和响应。
以后:
- 获取参数
- 返回 JSON
- 获取请求头
都靠它。
十、多个路由
Gin 可以注册很多路由。
go
package main
import "github.com/gin-gonic/gin"
func main() {
r := gin.Default()
r.GET("/", func(c *gin.Context) {
c.String(200, "首页")
})
r.GET("/user", func(c *gin.Context) {
c.String(200, "用户页面")
})
r.GET("/login", func(c *gin.Context) {
c.String(200, "登录页面")
})
r.Run()
}
十一、修改端口
默认:
txt
8080
修改:
go
r.Run(":9000")
访问:
txt
http://localhost:9000
十二、为什么 Gin 这么火
因为它真的很简单。
对比很多框架:
Gin 的代码非常直观。
比如:
go
r.GET()
你一眼就知道:
txt
这是 GET 请求
所以:
Go 后端开发里:
Gin 基本属于必学框架。
十三、最后总结
Gin 第一课最核心的内容:
其实就一句话:
用户访问一个 URL,Gin 会执行对应的函数。
例如:
go
r.GET("/hello", func(c *gin.Context) {
c.String(200, "hello")
})
本质就是:
txt
访问 /hello
执行函数
返回 hello
这就是整个 Web 开发最基础的模型。
后面所有复杂项目:
本质上都是在这个基础上不断扩展