01 文件目錄
gin_demo
├── app
│ ├── shop
│ │ ├── model.go
│ │ ├── views.go
│ │ └── urls.go
│ └── user
│ ├── models.go
│ ├── urls.go
│ └── router.go
├── go.mod
├── settings
├── main.go
└── routers
└── urls.go
文件和包作用解析:
1 app文件夾:放一個個app(包)
2 settings文件夾下放項目的配置數據
3 main.go 文件是主文件
4 routers 文件夾下的urls.go文件,放主路由,也就是對應每個app的路由組
5 每個app下的文件:model.go數據庫相關,gorm映射表;views.go視圖函數,業務邏輯;urls.go具體的url和函數的對應邏輯
02 文件代碼示例
- main.go文件
主文件
只放啟動項目的初始
package main
import "gin/router"
func main() {
router.MainRun()
}
- routers下的urls.go文件
package router
import (
"gin/apps/shop" // 每一個對應的app包
"gin/apps/user"
"github.com/gin-gonic/gin"
)
var rMain = gin.Default()
func MainRun() {
include("/user", user.Urls) // Urls每個app的包用同一個方法,去處理路由組下的具體url對應的函數
include("/shop", shop.Urls)
rMain.Run()
}
func include(url string, urls func(*gin.RouterGroup)) {
group := rMain.Group(url) // 路由組
urls(group) // 把路由組對象傳給對應的app下的包
}
注意:
每個app中處理url和對應函數的文件,要同名urls.go,且處理方法也要同名Urls
- app下的
urls.go文件
package user
import (
"github.com/gin-gonic/gin"
)
func Urls(url *gin.RouterGroup) {
url.GET("/id", UserName)
}
- app下的
views.go文件
package user
import "github.com/gin-gonic/gin"
func UserName(request *gin.Context) {
request.JSON(200, "ok")
}
