症状
注册路由时服务器在启动阶段 panic,消息称某路由与已有通配符冲突。Gin 用基数树做路由,因此同一段上互相矛盾的路径不能同时存在。同一位置的参数名不同、通配符下有静态路径,或同一路由被注册两次,都是常见原因。
诊断
读取冲突的两条路径;统一同一位置的参数名;查找重复注册。
go test ./... 2>&1 | grep -i "panic\|conflict"
根因
路由器无法构建一致的树,因为两条路由在同一位置不一致——参数名不同、重复注册,或通配符与静态段相撞。
修复
同一路径位置使用相同参数名;移除重复注册;避免通配与 catch-all 和具体路由重叠。让每个分支都无歧义即可启动。
验证
启动服务器确认不再 panic,再请求受影响路径确认命中预期处理器。启动正确且路由正确才算修好。
常见陷阱
为消除冲突随意改参数名会让处理函数取参出错;应统一命名而非回避。