gin|gin group NoRoute

概述 使用 gin 配置路由的时候,经常会遇到典型的if else场景:
对于指定路径,我希望走 A HandlerFunc, 对于未定义的其它路径,走 B HandlerFunc
但是在实际配置 else 过程中(也就是未定义的其它路径)发现,
Engine 类型,有 NoRoute 方法,可以满足 if else 场景里的 else
但是对于 group 来说,没有 NoRoute 方法,无法处理这个 group 里面剩下未定义路径的 HandlerFunc
github 上面搜了搜,有 issuse 和对应的解决方法
issuse链接
预期 想要达到的效果如下(代码copy自 github)

show := router.Group("/show") { show.GET("/show/:filename", ShowFile) show.NoRoute(ShowNoRoute) }

how to do 【gin|gin group NoRoute】(代码copy自 github)
func main() { router := gin.Default() router.NoRoute(func(c *gin.Context) { path := c.Request.URL.Path method := c.Request.Method fmt.Println(path) fmt.Println(method) if strings.HasPrefix(path, "/show") { fmt.Println("ok") } }) router.Run() }

    推荐阅读