go-web 项目笔记(1) 项目分层设计

go-web 采用gin 框架

1.项目分层信息

使用go-web gin,优化gin的启动方式,核心解决三个点。

  • 路由分组

    解决方法:
    //目录下做分组信息管理 注册相关路由
    router/user.go  
    
    func InitUserRouter(Router *gin.RouterGroup) {
      UserRouter := Router.Group("user")
      {
        UserRouter.GET("list", api.GetUserList)
      }
    }
    作用:参数接收一个 gin.RouterGroup , 可以根据不同服务 或 同一服务 分不同的组 和 url
    
  • 返回方法封装

    // 每个路由都对应一个返回func
    api/user.go
    
    func GetUserList(c *gin.Context) {
      c.JSON(http.StatusOK, gin.H{"code":1})
    }
    作用:就是将不同的func 封装在同一目录结构下,返回时直接调用即可
    
  • 使用router初始化操作,避免main方法臃肿

    // initialize/router.go
    // Routers 方法返回一个 *gin.Engine 引擎,参考 r := gin.Default() 返回参数也是 *gin.router
    func Routers() *gin.Engine {
      Router := gin.Default()
      apiRouter := Router.Group("/v1")
      // 调用router下 User路由分组方法, 传递一个全局路由
      router.InitUserRouter(apiRouter)
      return Router
    }
    
  • main.py

    func main() {
      router := initialize.Routers()
      if err := router.Run(":8081"); err != nil {
        panic("启动服务失败")
      }
    }
    
posted @ 2021-11-04 17:44  CV-coding  阅读(393)  评论(0)    收藏  举报