gin项目架构

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")
}
posted @ 2021-03-11 11:54  tianzhh_lynn  阅读(653)  评论(0编辑  收藏  举报