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

后面所有复杂项目:

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

相关推荐
雨浓YN1 小时前
GKTGD 工业监控系统-02MySQL 数据库技术文档(类库:NET8_SQLData)
数据库·wpf
dFObBIMmai1 小时前
JavaScript中对象生命周期与垃圾回收的引用关系
jvm·数据库·python
2401_824697661 小时前
Go语言怎么格式化时间_Go语言time.Format教程【详解】
jvm·数据库·python
2303_821287381 小时前
HTML函数在低背光键盘上编写困难吗_输入设备舒适度说明【介绍】
jvm·数据库·python
爱喝水的鱼丶1 小时前
SAP-ABAP:ABAP Development Tools(ADT)安装配置学习分享教程(四篇连载)第四篇:ADT连接故障排查与环境迁移教程
运维·开发语言·数据库·学习·sap·abap
2301_783848651 小时前
防范SQL注入的SQL编码规范_禁用动态拼接字符串语句
jvm·数据库·python
weixin_444012931 小时前
Angular 表单中基于下拉选择动态启用字段必填校验的完整实现
jvm·数据库·python
zjy277771 小时前
CSS解决浮动元素导致的布局闪烁_稳定容器布局高度
jvm·数据库·python
2501_901006471 小时前
MySQL主从复制过程中怎么增加从库_利用mysqldump快速扩容从库
jvm·数据库·python