GET的表单实体绑定获取
package main
import (
"fmt"
"github.com/gin-gonic/gin"
)
type Student struct {
// binding:"required"表示参数必须存在,如果无法获取则会报错
Name string `form:"name" binding:"required"`
Age int `form:"age" binding:"required"`
}
func main() {
app := gin.Default()
app.Handle("GET", "/", func(context *gin.Context) {
var student Student
// 将get请求参数映射到结构体
err := context.ShouldBindQuery(&student)
if err != nil {
panic(err)
}
context.Writer.Write([]byte(fmt.Sprintf("%s | %d", student.Name, student.Age)))
})
app.Run()
}
POST的表单实体绑定获取
package main
import (
"fmt"
"github.com/gin-gonic/gin"
)
type Student struct {
Name string `form:"name" binding:"required"`
Age int `form:"age" binding:"required"`
}
func main() {
app := gin.Default()
app.Handle("POST", "/", func(context *gin.Context) {
var student Student
err := context.ShouldBind(&student)
if err != nil {
panic(err)
}
context.Writer.Write([]byte(fmt.Sprintf("%s | %d", student.Name, student.Age)))
})
app.Run()
}
JSON类型参数的表单实体绑定获取
package main
import (
"fmt"
"github.com/gin-gonic/gin"
)
type Student struct {
Name string `form:"name" binding:"required"`
Age int `form:"age" binding:"required"`
}
func main() {
app := gin.Default()
app.Handle("POST", "/", func(context *gin.Context) {
var student Student
err := context.BindJSON(&student)
if err != nil {
panic(err)
}
context.Writer.Write([]byte(fmt.Sprintf("%s | %d", student.Name, student.Age)))
})
app.Run()
}