本笔记参考了学习视频:https://www.bilibili.com/video/BV1Be411p7Jf?spm_id_from=333.1007.top_right_bar_window_history.content.click
什么是uri
要了解get, post, put, delete请求先要了解什么是uri。
有下面一段代码
package main
import "github.com/gin-gonic/gin"
func main() {
r := gin.Default()
gin.Default()
r.GET("/path/:id", func(c *gin.Context) {
c.JSON(200, gin.H{
"success": true,
})
})
r.Run(":8081") // listen and serve on 0.0.0.0:8080
}
像上面以:开头,后面加一个字符串的的形式组成的这样一个地址,他可以通过某一个节点挂一个占位表达式,通过表达式后面的字符串可以取出参数,这就是uri的一种形式。

1. get请求
get请求的参数会放在地址栏里,用明文的形式提交给后台。比如:
cur localhost:8080/path?user=abc&pwd=123456
r.GET("/path/:id", func(c *gin.Context) {
c.JSON(200, gin.H{
"success": true,
})
})
如何请求

在postman中get http://127.0.0.1:8081/path/123 可以正确返回结果,同时应用日志里也抓去到了请求参数。
再比如在postman中传入user和pwd参数

能够正确返回请求结果,同时应用也抓到了"/path/123?user=abc&pwd=123456"这些参数
如何把uri里的参数拿出来
- 获取uri里面的参数
r.GET("/path/:id", func(c *gin.Context) {
id := c.Param("id") //获取占位表达式后面的参数
//user和pwd放在地址栏后面,所以叫query传参
user := c.Query("user") //
pwd := c.Query("pwd")
c.JSON(200, gin.H{
"id": id,
"user": user,
"pwd": pwd,
})
})
请求后结果如下

2. 设置一个参数的默认值
如果不传user或者pwd参数,如何设置一个默认值
r.GET("/path/:id", func(c *gin.Context) {
id := c.Param("id") //获取占位表达式后面的参数
//user和pwd放在地址栏后面,所以叫query传参
user := c.DefaultQuery("user", "kaka") //设置user的默认值为kaka
pwd := c.Query("pwd")
c.JSON(200, gin.H{
"id": id,
"user": user,
"pwd": pwd,
})
})

可以看到虽然没有传user参数,但是还是给user赋了默认值。
2. post请求
post的请求参数放在form或者body里,form即表单,body是以当前最流行的json格式进行交互。
传参并获取参数
r.POST("/path", func(c *gin.Context) {
user := c.DefaultPostForm("user", "aaa")
pwd := c.PostForm("pwd")
c.JSON(200, gin.H{
"user": user,
"pwd": pwd,
})
})

可以看到传入一个表单参数后,可以正确获取参数里的值。
3. delete请求
delete请求一般为uri,同样也可以用body
r.DELETE("/path/:id", func(c *gin.Context) {
id := c.Param("id") //获取占位表达式后面的参数
c.JSON(200, gin.H{
"id": id,
})
})
delete请求实际工作中用的不多,传参和取参方法和get类似

4. put请求
参数在form、body或者uri里
r.PUT("/path", func(c *gin.Context) {
user := c.DefaultPostForm("user", "aaa")
pwd := c.PostForm("pwd")
c.JSON(200, gin.H{
"user": user,
"pwd": pwd,
})
})
put传参和获取参数的方法和post基本一样


本文介绍了URI的基本概念,以及GET、POST、PUT、DELETE请求的使用方法,展示了如何在Gin框架中处理参数,并演示了设置默认值。重点讲解了如何从URI和请求体中提取参数,以及在不同类型的请求中传递和获取数据。

6937

被折叠的 条评论
为什么被折叠?



