Gin 不在数组嵌套结构中绑定验证

Gin not binding validation in array nested struct

我有问题。这个问题是关于 Go Gin 框架中的验证绑定。 如果我用下面的请求请求端点,它会通过验证,但我的期望是显示错误。我试过在 []PatokInputReposisi 中使用指向 *[]PatokInputReposisi 的指针,但它不起作用。

我的要求(JSON):

{
    "date": "2020-01-29T14:47:43.511Z",
    "pitwd": "PIT",
    "area": "RTN",
    "sector": "JL. ILJIN",
    "position": "ES",
    "patoks": [
        {
            "northing": -1.00
        }
    ]
} 

类型结构定义:

type InputReposisiMonitoringRequest struct {
    Date     time.Time            `json:"date" binding:"required"`
    PitWD    string               `json:"pitwd" binding:"required"`
    Area     string               `json:"area" binding:"required"`
    Sector   string               `json:"sector" binding:"required"`
    Position string               `json:"position" binding:"required"`
    Patoks   []PatokInputReposisi `json:"patoks" binding:"required"`
}

type PatokInputReposisi struct {
    Northing  float64 `json:"northing" binding:"required"`
    Easting   float64 `json:"easting" binding:"required"`
    Elevation float64 `json:"elevation" binding:"required"`
    IsSkip    bool    `json:"is_skip" binding:"required"`
}

在处理程序中:

func (h *Handler) handleInputReposisiPatok(c *gin.Context) {
    var request InputReposisiMonitoringRequest
    if err := c.ShouldBindJSON(&request); err != nil {
        c.JSON(http.StatusBadRequest, utils.ErrorResponse(err))
        return
    }
    c.JSON(http.StatusOK, utils.Response("success"))
}

随着项目的切片使用潜水

type InputReposisiMonitoringRequest struct {
    Date     time.Time            `json:"date" binding:"required"`
    PitWD    string               `json:"pitwd" binding:"required"`
    Area     string               `json:"area" binding:"required"`
    Sector   string               `json:"sector" binding:"required"`
    Position string               `json:"position" binding:"required"`
    Patoks   []PatokInputReposisi `json:"patoks" binding:"required,dive"`
}