今天开发遇到一个坑,某个http接口出现了url冲突,问题原因参考:https://www.cntofu.com/book/73/ch6-web/ch6-02-router.md

简单来说如果两个url的方法相同,在某个前缀相同的地方一个是参数,另一个是普通字符串,就会发生conflict,比如:

g.GET("/game/activity/detail/:activityid/app/:appid", m.GetGameActivity, middleware.DefaultAdminAuth())
g.GET("/game/activity/:activityid", m.GetActivityRelatedEvents, middleware.DefaultAdminAuth())

上面这两个url都是GET方法,在前缀都是/game/activity/的情况下,第一个url在这个位置的是普通字符串detail,而第二个url则是wildcard参数(指:id这种形式),此时就会发生conflict