美文网首页
gin group NoRoute

gin group NoRoute

作者: Yellowtail | 来源:发表于2019-07-17 14:30 被阅读0次

概述

使用 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

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

相关文章

网友评论

      本文标题:gin group NoRoute

      本文链接:https://www.haomeiwen.com/subject/oopqlctx.html