Gin: BindQuery does not work for binding:required fields

Created on 25 Aug 2018  Â·  3Comments  Â·  Source: gin-gonic/gin

  • gin version: 1.3.0
  • operating system: arch linux

Description

For some reason it's impossible to use binding:"required" for query params

type LimitOffset struct {
    Offset int `form:"offset" binding:"required"`
    Limit  int `form:"limit" binding:"required"`
}

func CategoryBooks(conn *mgo.Collection, c *gin.Context) {
    var query_params LimitOffset
    if err := c.BindQuery(&query_params); err != nil {
        badRequestResponse(c, err)
        return
    }
        ...
}

response:
{"description":"Key: 'LimitOffset.Offset' Error:Field validation for 'Offset' failed on the 'required' tag","status":"error"}

url with query params:

http://localhost:8000/categories/Python?offset=0&limit=2

Most helpful comment

@mdnight I use the follow code it's ok.

package main

import (
    "fmt"

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

type LimitOffset struct {
    Offset int `form:"offset" binding:"required"`
    Limit int `form:"limit" binding:"required"`
}

func main() {
    r := gin.Default()
    r.GET("/t", func(c *gin.Context) {
        var query_params LimitOffset
        if err := c.BindQuery(&query_params); err != nil {
            fmt.Println(err)
            return
        }
        fmt.Println("ok")
    })
    r.Run()
}

All 3 comments

I try it.I'm fine.

@mdnight Can you provide mini codes to help reproduce this issue?

@mdnight I use the follow code it's ok.

package main

import (
    "fmt"

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

type LimitOffset struct {
    Offset int `form:"offset" binding:"required"`
    Limit int `form:"limit" binding:"required"`
}

func main() {
    r := gin.Default()
    r.GET("/t", func(c *gin.Context) {
        var query_params LimitOffset
        if err := c.BindQuery(&query_params); err != nil {
            fmt.Println(err)
            return
        }
        fmt.Println("ok")
    })
    r.Run()
}
Was this page helpful?
0 / 5 - 0 ratings

Related issues

iiinsomnia picture iiinsomnia  Â·  3Comments

xpbliss picture xpbliss  Â·  3Comments

sofish picture sofish  Â·  3Comments

ccaza picture ccaza  Â·  3Comments

wangcn picture wangcn  Â·  3Comments