GoFrame框架使用BindHandler设置路由失效的原因
API中
type ThumbsUpReq struct {
g.Meta `path:"/thumbsUp" tags:"资讯" method:"post" summary:"给评论点赞/取消点赞"`
CommentId int `json:"comment_id" v:"required#评论ID不能为空" dc:"评论ID" example:"20"`
}
type ThumbsUpRes struct {
GoodsNum int64 `json:"goods_num" dc:"该评论的点赞数量"`
}
router中
s.BindHandler("/cccc", article.NewV1().ThumbsUp)
发现实际注册的路由地址是/thumbsUp而不是/cccc,也就是使用/thumbsUp可以访问,使用/cccc无法访问,是报错的。
查看ghttp包中的ghttp_server_router.go文件,约100-102行,会使用结构体标签中的path覆盖掉s.BindHandler方法注册的路由地址,所以生效的路由实际是/thumbsUp
if v := gmeta.Get(objectReq, gtag.Path); !v.IsEmpty() {
uri = v.String()
}

浙公网安备 33010602011771号