Gin: BindQueryはbinding:requiredフィールドでは機能しません

作成日 2018年08月25日  ·  3コメント  ·  ソース: gin-gonic/gin

  • ジンバージョン:1.3.0
  • オペレーティングシステム:arch linux

説明

何らかの理由で、バインディングを使用することはできません:クエリパラメータに「必須」

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
    }
        ...
}

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

クエリパラメータを含むURL:

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

最も参考になるコメント

@mdnight私は次のコードを使用しますそれは大丈夫です。

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()
}

全てのコメント3件

やってみます。元気です。

@mdnightこの問題の再現に役立つミニコードを提供できますか?

@mdnight私は次のコードを使用しますそれは大丈夫です。

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()
}
このページは役に立ちましたか?
0 / 5 - 0 評価

関連する問題

gplume picture gplume  ·  3コメント

frederikhors picture frederikhors  ·  3コメント

Bloomca picture Bloomca  ·  3コメント

sofish picture sofish  ·  3コメント

lilee picture lilee  ·  3コメント