目录
1. 简介
Gin
GinGin
2. 基本说明
GinGin
GinGingin.Default()Run()
r := gin.Default() r.Run()
gin.HandlerFuncgin.RouterGroupgin.HandlerFunc
gin.HandlerFuncr.GET()r.POST()
func registerHandler(c *gin.Context) {
// 注册逻辑...
}
func loginHandler(c *gin.Context) {
// 登录逻辑...
}
r := gin.Default()
r.GET("/register", registerHandler)
r.POST("/login", loginHandler)
registerHandlerloginHandler/register/login
GinGingin.HandlerFuncgin.RouterGroup
3. 基本实现
Gin
import (
"github.com/gin-gonic/gin"
"net/http"
)
func main() {
// 1. 通过gin.Default 创建一个gin.Engine 实例
r := gin.Default()
// 2. 通过gin.Engine 中的 GET/POST 设置路由
r.GET("/register", func(c *gin.Context) {
c.String(http.StatusOK, "注册成功")
})
r.POST("/login", func(c *gin.Context) {
// 处理用户提交的数据
//...
// 返回响应结果
c.JSON(http.StatusOK, gin.H{
"message": "成功登录",
})
})
// 3. 启动服务器
r.Run(":8080")
}
gin.Defaultgin.EngineGETregisterlogingin.EngineRun8080
8080
curl http://localhost:8080/register
此时将返回下面数据:
注册成功
4. 原理解释
4.1 路由规则的设置为什么还区分GET和POST方法
GETPOST
r := gin.Default()
r.GET("/register", func(c *gin.Context) {})
r.POST("/login", func(c *gin.Context) {})
gin.EngineGETPOST
这个其实是和HTTP协议相对应的,在 HTTP 协议中,常见的请求方法有 GET、POST、DELETE、PATCH、PUT、OPTIONS、HEAD 等。这些请求方法在语义和功能上有所不同,在实际应用中也会根据需要选择不同的方法进行使用。
GETPOST
GinGETPOSTDELETEPATCHPUTOPTIONSHEADGin
GETPOST
r := gin.Default()
r.GET("/hello", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{
"message": "hello GET",
})
})
r.POST("/hello", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{
"message": "hello POST",
})
})
此时启动服务器,然后客户端向服务器发起HTTP GET请求,如下:
curl -X GET http://localhost:8080/hello
GET
{"message":"hello GET"}
4.2 路由规则是怎么存储的
GinGETPOST
GETGET
(根节点)
/
`/user`
/ \
`j` `:id`
/ \
`ohn` `ane`
GETPOST
r.GET("/user/john", func(c *gin.Context) {})
r.GET("/user/jane", func(c *gin.Context) {})
r.GET("/user/:id", func(c *gin.Context) {})
r.POST("/user/john", func(c *gin.Context) {})
r.POST("/user/jane", func(c *gin.Context) {})
GETPOST
(GET根节点) (POST根节点)
/ /
`/user` `/user`
/ \ /
`j` `:id` `j`
/ \ / \
`ohn` `ane` `ohn` `ane`
GETGETPOSTPOST
5.总结
Gin
GETPOST
Gin
您可能感兴趣的文章: