四大请求方式
GET POST PUT DELETE
其中最常见的为GET和POST请求
Restful风格指的是网络应用中就是资源定位和资源操作的风格。不是标准也不是协议。
GET:从服务器取出资源(一项或多项)
POST:在服务器新建一个资源 (注册服务)
PUT:在服务器更新资源(客户端提供完整资源数据)
PATCH:在服务器更新资源(客户端提供需要修改的资源数据)
DELETE:从服务器删除资源
注意:对代码的解释多为注释部分
Gin框架获取请求参数的各种方式
在Gin框架中,获取请求参数的方式有以下几种:
- GET请求参数
- POST请求参数-Form表单
- POST请求参数-JSON格式
- URL参数
- 请求头部参数
1. GET请求参数
func main() {
router := gin.Default()
// 使用GET请求并获取参数
router.GET("/user", func(c *gin.Context) {
// 使用Query获取请求参数
username := c.Query("username")
password := c.Query("password")
// 返回请求参数
c.JSON(200, gin.H{
"username": username,
"password": password,
})
})
// 运行服务
router.Run(":8080")
}
2. POST请求参数-Form表单
func main() {
router := gin.Default()
// 使用POST请求并获取参数
router.POST("/user", func(c *gin.Context) {
// 使用PostForm获取请求参数
username := c.PostForm("username")
password := c.PostForm("password")
// 返回请求参数
c.JSON(200, gin.H{
"username": username,
"password": password,
})
})
// 运行服务
router.Run(":8080")
}
3. POST请求参数-JSON格式
func main() {
router := gin.Default()
// 使用POST请求并获取参数
router.POST("/user", func(c *gin.Context) {
// 将JSON格式请求参数绑定到结构体上
var user User
if err := c.BindJSON(&user); err != nil {
// 返回错误信息
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
// 返回请求参数
c.JSON(200, gin.H{
"username": user.Username,
"password": user.Password,
})
})
// 运行服务
router.Run(":8080")
}
type User struct {
Username string `json:"username"`
Password string `json:"password"`
}
4. URL参数
func main() {
router := gin.Default()
// 使用URL参数并获取参数
router.GET("/user/:username/:password", func(c *gin.Context) {
// 使用Param获取URL参数
username := c.Param("username")
password := c.Param("password")
// 返回请求参数
c.JSON(200, gin.H{
"username": username,
"password": password,
})
})
// 运行服务
router.Run(":8080")
}
5. 请求头部参数
func main() {
router := gin.Default()
// 使用请求头部参数并获取参数
router.GET("/user", func(c *gin.Context) {
// 使用Request获取请求头部参数
username := c.Request.Header.Get("username")
password := c.Request.Header.Get("password")
// 返回请求参数
c.JSON(200, gin.H{
"username": username,
"password": password,
})
})
// 运行服务
router.Run(":8080")
}