参数绑定 1、ShouldBindJSON 2、ShouldBindQuery 3、ShouldBindUri 4、ShouldBind
1、ShouldBindJSON
package mainimport ( "github.com/gin-gonic/gin" "net/http"
) type User struct { Name string `json:"name"` Gender string `json:"gender"` Age int `json:"age"`
} func getUser ( c * gin. Context) { var userInfo Usererr := c. ShouldBindJSON ( & userInfo) if err != nil { c. JSON ( http. StatusOK, gin. H{ "message" : "参数错误" } ) return } c. JSON ( http. StatusOK, userInfo)
} func main ( ) { router := gin. Default ( ) router. GET ( "/user" , getUser) router. Run ( ":9090" )
}
2、ShouldBindQuery
package mainimport ( "github.com/gin-gonic/gin" "net/http"
) type UserInfo struct { Name string `json:"name" form:"name"` Gender string `json:"gender" form:"gender"` Age string `json:"age" form:"age"`
} func getUserInfo ( c * gin. Context) { var userInfo UserInfoerr := c. ShouldBindQuery ( & userInfo) if err != nil { c. JSON ( http. StatusOK, gin. H{ "message" : "参数有误" } ) return } c. JSON ( http. StatusOK, userInfo)
} func main ( ) { router := gin. Default ( ) router. POST ( "/user" , getUserInfo) router. Run ( "9090" )
}
3、ShouldBindUri
package mainimport ( "github.com/gin-gonic/gin" "net/http"
) func bindUri ( c * gin. Context) { type User struct { Name string `json:"name" uri:"name"` Age int `json:"age" uri:"age"` } var user Userc. ShouldBindUri ( & user) c. JSON ( http. StatusOK, user)
} func main ( ) { router := gin. Default ( ) router. GET ( "/uri/:name/:age" , bindUri) router. Run ( ":9000" )
}
4、ShouldBind
package mainimport ( "github.com/gin-gonic/gin" "net/http"
) type Students struct { Name string `json:"name" form:"name"` Gender string `json:"gender" form:"gender"` Age int `json:"age" form:"age"`
} func getStudent ( c * gin. Context) { var userInfo Studentserr := c. ShouldBind ( & userInfo) if err != nil { c. JSON ( http. StatusOK, gin. H{ "message" : "参数错误" } ) return } c. JSON ( http. StatusOK, userInfo)
} func main ( ) { router := gin. Default ( ) router. GET ( "/user" , getStudent) router. Run ( ":9000" )
}