因为我们把所有的路由注册都写在一个SetupRouter函数中的话就会太复杂了。
    我们可以分开定义多个路由文件,例如:
    image.png
    routers/shop.go中添加一个LoadShop的函数,将shop相关的路由注册到指定的路由器:

    1. func LoadShop(e *gin.Engine) {
    2. e.GET("/hello", helloHandler)
    3. e.GET("/goods", goodsHandler)
    4. e.GET("/checkout", checkoutHandler)
    5. ...
    6. }

    routers/blog.go中添加一个LoadBlog的函数,将blog相关的路由注册到指定的路由器:

    1. func LoadBlog(e *gin.Engine) {
    2. e.GET("/post", postHandler)
    3. e.GET("/comment", commentHandler)
    4. ...
    5. }

    在main函数中实现最终的注册逻辑如下:

    1. func main() {
    2. r := gin.Default()
    3. routers.LoadBlog(r)
    4. routers.LoadShop(r)
    5. if err := r.Run(); err != nil {
    6. fmt.Println("startup service failed, err:%v\n", err)
    7. }
    8. }