Gin 框架第一课:从 0 搞懂 Gin 最基础的路由

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 开发最基础的模型。

后面所有复杂项目:

本质上都是在这个基础上不断扩展

相关推荐
日取其半万世不竭几秒前
密码管理工具私有化部署,Vaultwarden 备份恢复怎么做?
数据库·docker·容器
填满你的记忆6 分钟前
《为什么 MySQL 不适合做 AI 检索?》
数据库·人工智能·mysql·ai·向量数据库
map1e_zjc7 分钟前
Redis入门笔记
数据库·redis·缓存
步十人17 分钟前
【Redis】高可用集群架构
数据库·redis·架构
霸道流氓气质19 分钟前
批量异步处理 + MQ + Redis 进度追踪实战指南
数据库·redis·状态模式
smart199819 分钟前
数据备份解决方案,适合金融等关键业务需求
数据库·科技·存储
拾起零碎22 分钟前
U8/固定资产反结账报错
数据库·oracle
念恒1230629 分钟前
MySQL connect 访问
数据库·mysql
六月雨滴30 分钟前
Oracle 归档日志性能优化
数据库·oracle·性能优化
码不停蹄的玄黓30 分钟前
MySQL 死锁:已产生死锁的解决方法 + 永久避免方案
数据库·mysql