go gin 参数绑定

  • json 绑定
  • query 绑定
  • URI 绑定
package main

import (
	"fmt"
	"net/http"

	"github.com/gin-gonic/gin"
)

type UserInfo struct {
    
    
	UserName string `json:"username" form:"username" uri:"username"`
	Age      int    `json:"age" form:"age" uri:"age"`
}

// 结构体中写json
func bindjson(c *gin.Context) {
    
    
	var user UserInfo
	err := c.ShouldBindJSON(&user)
	if err != nil {
    
    
		fmt.Printf("err: %v\n", err)
		c.JSON(http.StatusBadRequest, gin.H{
    
    "msg": err})
	}
	c.JSON(http.StatusOK, user)
}

// 结构体中要写form
func bindquery(c *gin.Context) {
    
    
	var user UserInfo
	err := c.ShouldBindQuery(&user)
	if err != nil {
    
    
		fmt.Printf("err: %v\n", err)
		c.JSON(http.StatusBadRequest, gin.H{
    
    "msg": err})
	}
	c.JSON(http.StatusOK, user)
}

// 结构体中要写uri
func binduri(c *gin.Context) {
    
    
	var user UserInfo
	err := c.ShouldBindUri(&user)
	if err != nil {
    
    
		fmt.Printf("err: %v\n", err)
		c.JSON(http.StatusBadRequest, gin.H{
    
    "msg": err})
	}
	c.JSON(http.StatusOK, user)
}

func main() {
    
    
	router := gin.Default()
	router.POST("/bindjson", bindjson)
	router.POST("/bindquery", bindquery)
	router.POST("/binduri/:username/:age", binduri)
	router.Run("localhost:9999")
}

猜你喜欢

转载自blog.csdn.net/weixin_43632687/article/details/132542242