惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

B
Blog
D
Docker
J
Java Code Geeks
腾讯CDC
Blog — PlanetScale
Blog — PlanetScale
G
Google Developers Blog
M
MIT News - Artificial intelligence
L
LangChain Blog
T
The Blog of Author Tim Ferriss
P
Proofpoint News Feed
MyScale Blog
MyScale Blog
博客园 - Franky
GbyAI
GbyAI
Hugging Face - Blog
Hugging Face - Blog
aimingoo的专栏
aimingoo的专栏
Last Week in AI
Last Week in AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 聂微东
N
Netflix TechBlog - Medium
B
Blog RSS Feed
Y
Y Combinator Blog
阮一峰的网络日志
阮一峰的网络日志
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google DeepMind News
Google DeepMind News

博客园 - 代码小伙

gin框架使用zap,在日志中加入trace_id gorm使用gen自动生成模型和查询文件 Go使用base64Captcha生成字母验证码 GoFrame框架查询数据表时对字段取别名 GoFrame框架使用WherePri报错原因 GoFrame框架WebServer默认端口号是什么 GoFrame框架SetFileServerEnabled关闭静态服务不生效 vite修改端口号 用路由方式写一个通用的微信小程序校验文件验证 手机网页通过微信deeplink实现wap支付 position:sticky失效原因分析 mysql把一个表的字段赋值到另一张表 基于jquery的countdown插件实现毫秒倒计时 Vue打包代码如何部署在ThinkPHP项目里 保姆级教程,centos7安装erlang和rabbitmq Element Plus表单resetFields重置表单无效 thinkphp6通过中间件设置跨域 centos7安装jdk vue3中使用swiper6实现轮播
GoFrame框架使用BindHandler设置路由失效的原因
代码小伙 · 2025-08-21 · via 博客园 - 代码小伙

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