我正在努力从 迁移1.3.0
到1.4.0
(或1.5.0
) 并且我发现1.3.0
对于以下代码片段
router := gin.New() router.GET("/func/:id/details", func(c *gin.Context) { value := c.Param("id") fmt.Printf("value is %v\n", value) })
即使在请求时也总是会到达处理程序/func//details
(注意缺少 URL param
),1.4.0
而上面的内容将返回404
。
是否可以控制这种行为?(以与它相同的方式工作1.3.0
?)
我尝试过使用BindUri
介绍1.5.0
func main() {
type Params struct {
ID string `uri:"id" binding:"required"`
}
router := gin.New()
router.GET("/func/:id/details", func(c *gin.Context) {
var pp Params
if err := c.BindUri(&pp); err != nil {
log.Errorf("failed binding: %v", err)
c.Status(http.StatusBadRequest)
return
}
log.Printf("params %+v\n", pp)
})
if err := router.Run("localhost:8080"); err != nil {
panic(err)
}
}
404但调用时也会失败(带有)。
蓝山帝景
相关分类