1.表单数据
- form:前端表单数据名称
- required:表示字段是必须的
type User struct {
UserName string `form: "user_name" binding: "required"`
Phone string `form: "phone" binding: "required"`
Passwd string `form: "password" binding: "required"`
}
2.表单实体绑定(get请求)
query_params参数
package main
import (
"fmt"
"log"
"github.com/gin-gonic/gin"
)
type User struct { /* */
UserName string `form:"user_name" binding:"required"`
PassWD string `form:"password" binding:"required"`
}
func main() {
engine := gin.Default()
engine.GET("/hello", func(ctx *gin.Context) {
fmt.Println("请求路径:", ctx.FullPath())
var user User
err := ctx.ShouldBindQuery(&user)
if err != nil {
log.Fatal("err:", err.Error())
return
}
fmt.Println("userName:", user.UserName)
fmt.Println("Password:", user.PassWD)
ctx.Writer.Write([]byte("hello, gin\n"))
})
if err := engine.Run(":8090"); err != nil {
log.Fatal(err.Error())
}
}
3.表单实体绑定(post请求)
form-data参数
package main
import (
"fmt"
"log"
"github.com/gin-gonic/gin"
)
type User struct { /* */
UserName string `form:"user_name" binding:"required"`
PassWD string `form:"password" binding:"required"`
}
func main() {
engine := gin.Default()
engine.POST("/hello2", func(ctx *gin.Context) {
fmt.Println("请求路径:", ctx.FullPath())
var user User
err := ctx.ShouldBind(&user) // post方法绑定实体
if err != nil {
log.Fatal("err:", err.Error())
return
}
fmt.Println("userName:", user.UserName)
fmt.Println("Password:", user.PassWD)
ctx.Writer.Write([]byte("hello, gin\n"))
})
if err := engine.Run(":8090"); err != nil {
log.Fatal(err.Error())
}
}
4.表单实体绑定(post请求)
json参数
注意:json格式传递参数时,struct中定义的字段名字与请求参数名称相同,与tag中的form定义无关
package main
import (
"fmt"
"log"
"github.com/gin-gonic/gin"
)
type User struct { /* */
UserName string `form:"user_name" binding:"required"`
PassWD string `form:"password" binding:"required"`
}
func main() {
engine := gin.Default()
engine.POST("/hello3", func(ctx *gin.Context) {
fmt.Println("请求路径:", ctx.FullPath())
var user User
err := ctx.BindJSON(&user) // post方法绑定
// err := ctx.ShouldBindJSON(&user) // post方法绑定
if err != nil {
log.Fatal("err:", err.Error())
return
}
fmt.Println("userName:", user.UserName)
fmt.Println("Password:", user.PassWD)
ctx.Writer.Write([]byte("hello, gin\n"))
})
if err := engine.Run(":8090"); err != nil {
log.Fatal(err.Error())
}
}