1. 程式人生 > 其它 >go-web 專案筆記(1) 專案分層設計

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("啟動服務失敗")
      }
    }
    

本文來自部落格園,作者:CV-coding,轉載請註明原文連結:https://www.cnblogs.com/CV-coding/p/15509359.html