mirror of https://github.com/gin-gonic/gin.git
Improves Context documentation
Query(), GetQuery(), PostForm(), GetPostForm()...
This commit is contained in:
parent
afc499f306
commit
44978ff780
73
context.go
73
context.go
|
@ -183,25 +183,6 @@ func (c *Context) MustGet(key string) interface{} {
|
||||||
/************ INPUT DATA ************/
|
/************ INPUT DATA ************/
|
||||||
/************************************/
|
/************************************/
|
||||||
|
|
||||||
// Query is a shortcut for c.Request.URL.Query().Get(key)
|
|
||||||
// It is used to return the url query values.
|
|
||||||
// It returns an empty string ("") when the value does not exist.
|
|
||||||
// /path?id=1234&name=Manu
|
|
||||||
// c.Query("id") == "1234"
|
|
||||||
// c.Query("name") == "Manu"
|
|
||||||
// c.Query("wtf") == ""
|
|
||||||
func (c *Context) Query(key string) string {
|
|
||||||
value, _ := c.GetQuery(key)
|
|
||||||
return value
|
|
||||||
}
|
|
||||||
|
|
||||||
// PostForm is a shortcut for c.Request.PostFormValue(key)
|
|
||||||
// It returns an empty string ("") when the value does not exist.
|
|
||||||
func (c *Context) PostForm(key string) string {
|
|
||||||
value, _ := c.GetPostForm(key)
|
|
||||||
return value
|
|
||||||
}
|
|
||||||
|
|
||||||
// Param returns the value of the URL param.
|
// Param returns the value of the URL param.
|
||||||
// It is a shortcut for c.Params.ByName(key)
|
// It is a shortcut for c.Params.ByName(key)
|
||||||
// router.GET("/user/:id", func(c *gin.Context) {
|
// router.GET("/user/:id", func(c *gin.Context) {
|
||||||
|
@ -212,18 +193,26 @@ func (c *Context) Param(key string) string {
|
||||||
return c.Params.ByName(key)
|
return c.Params.ByName(key)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Context) DefaultPostForm(key, defaultValue string) string {
|
// Query returns the keyed url query value if it exists,
|
||||||
if value, ok := c.GetPostForm(key); ok {
|
// othewise it returns an empty string `("")`.
|
||||||
|
// It is shortcut for `c.Request.URL.Query().Get(key)`
|
||||||
|
// GET /path?id=1234&name=Manu&value=
|
||||||
|
// c.Query("id") == "1234"
|
||||||
|
// c.Query("name") == "Manu"
|
||||||
|
// c.Query("value") == ""
|
||||||
|
// c.Query("wtf") == ""
|
||||||
|
func (c *Context) Query(key string) string {
|
||||||
|
value, _ := c.GetQuery(key)
|
||||||
return value
|
return value
|
||||||
}
|
}
|
||||||
return defaultValue
|
|
||||||
}
|
|
||||||
|
|
||||||
// DefaultQuery returns the keyed url query value if it exists, othewise it returns the
|
// DefaultQuery returns the keyed url query value if it exists,
|
||||||
// specified defaultValue.
|
// othewise it returns the specified defaultValue string.
|
||||||
// //?name=Manu
|
// See: Query() and GetQuery() for further information.
|
||||||
|
// GET /?name=Manu&lastname=
|
||||||
// c.DefaultQuery("name", "unknown") == "Manu"
|
// c.DefaultQuery("name", "unknown") == "Manu"
|
||||||
// c.DefaultQuery("id", "none") == "none"
|
// c.DefaultQuery("id", "none") == "none"
|
||||||
|
// c.DefaultQuery("lastname", "none") == ""
|
||||||
func (c *Context) DefaultQuery(key, defaultValue string) string {
|
func (c *Context) DefaultQuery(key, defaultValue string) string {
|
||||||
if value, ok := c.GetQuery(key); ok {
|
if value, ok := c.GetQuery(key); ok {
|
||||||
return value
|
return value
|
||||||
|
@ -231,6 +220,14 @@ func (c *Context) DefaultQuery(key, defaultValue string) string {
|
||||||
return defaultValue
|
return defaultValue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetQuery is like Query(), it returns the keyed url query value
|
||||||
|
// if it exists `(value, true)` (even when the value is an empty string),
|
||||||
|
// othewise it returns `("", false)`.
|
||||||
|
// It is shortcut for `c.Request.URL.Query().Get(key)`
|
||||||
|
// GET /?name=Manu&lastname=
|
||||||
|
// ("Manu", true) == c.GetQuery("name")
|
||||||
|
// ("", false) == c.GetQuery("id")
|
||||||
|
// ("", true) == c.GetQuery("lastname")
|
||||||
func (c *Context) GetQuery(key string) (string, bool) {
|
func (c *Context) GetQuery(key string) (string, bool) {
|
||||||
req := c.Request
|
req := c.Request
|
||||||
if values, ok := req.URL.Query()[key]; ok && len(values) > 0 {
|
if values, ok := req.URL.Query()[key]; ok && len(values) > 0 {
|
||||||
|
@ -239,6 +236,30 @@ func (c *Context) GetQuery(key string) (string, bool) {
|
||||||
return "", false
|
return "", false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// PostForm returns the specified key from a POST urlencoded form or multipart form
|
||||||
|
// when it exists, otherwise it returns an empty string `("")`.
|
||||||
|
func (c *Context) PostForm(key string) string {
|
||||||
|
value, _ := c.GetPostForm(key)
|
||||||
|
return value
|
||||||
|
}
|
||||||
|
|
||||||
|
// PostForm returns the specified key from a POST urlencoded form or multipart form
|
||||||
|
// when it exists, otherwise it returns the specified defaultValue string.
|
||||||
|
// See: PostForm() and GetPostForm() for further information.
|
||||||
|
func (c *Context) DefaultPostForm(key, defaultValue string) string {
|
||||||
|
if value, ok := c.GetPostForm(key); ok {
|
||||||
|
return value
|
||||||
|
}
|
||||||
|
return defaultValue
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetPostForm is like PostForm(key). It returns the specified key from a POST urlencoded
|
||||||
|
// form or multipart form when it exists `(value, true)` (even when the value is an empty string),
|
||||||
|
// otherwise it returns ("", false).
|
||||||
|
// For example, during a PATCH request to update the user's email:
|
||||||
|
// email=mail@example.com --> ("mail@example.com", true) := GetPostForm("email") // set email to "mail@example.com"
|
||||||
|
// email= --> ("", true) := GetPostForm("email") // set email to ""
|
||||||
|
// --> ("", false) := GetPostForm("email") // do nothing with email
|
||||||
func (c *Context) GetPostForm(key string) (string, bool) {
|
func (c *Context) GetPostForm(key string) (string, bool) {
|
||||||
req := c.Request
|
req := c.Request
|
||||||
req.ParseMultipartForm(32 << 20) // 32 MB
|
req.ParseMultipartForm(32 << 20) // 32 MB
|
||||||
|
|
Loading…
Reference in New Issue