golang_gin路由文件分离和controller
LYT
首页
分类
标签
项目
留言
友链
关于

golang_gin路由文件分离和controller

2022年8月2日18时19分
2022年8月2日19时19分
golang
golang gin
浏览量:
总浏览量:
0

golang_gin路由文件分离

在gin项目开发中,为了更好的实现团队合作,我们通常都是将路由文件分离,然后在主函数里面调用,这样就实现了模块化的开发

路由组

为了使项目结构更加有条理,我们通常要进行路由分组,在项目目录建立一个routers文件夹,里面新建一个admin.go的文件,下面两个路由的访问分别为/admin/index和/admin/login

package routers import ( "net/http" "github.com/gin-gonic/gin" ) func IndexInit(r *gin.Engine) { adminR := r.Group("/admin")//路由分组。 adminR.GET("/index", func(ctx *gin.Context) { ctx.String(http.StatusOK, "这是后台管理页面") }) adminR.GET("/login", func(ctx *gin.Context) { ctx.String(http.StatusOK, "这是后台登录页面") }) }

在main函数里面实现

package main import ( "hello/gin_team/routers" "github.com/gin-gonic/gin" )//这里自动引入routers的包 func main() { r := gin.Default() routers.IndexInit(r)//调用方法 r.Run() }

controller

在根目录新建一个controller文件夹,在controller里面实现具体的方法,然后在routers文件夹下调用 controller目录结构

image-20220807173243640

controller代码

package admin import ( "net/http" "github.com/gin-gonic/gin" ) type UserController struct { } func (UserController) AdminIndex(ctx *gin.Context) { ctx.String(http.StatusOK, "这是后台管理页面") } func (UserController) AdminLogin(ctx *gin.Context) { ctx.String(http.StatusOK, "这是后台登录页面") }

router调用controller

package routers import ( "hello/gin_controller/controller/admin" "github.com/gin-gonic/gin" ) func IndexInit(r *gin.Engine) { adminR := r.Group("/admin") adminR.GET("/index", admin.UserController{}.AdminIndex) adminR.GET("/login", admin.UserController{}.AdminLogin) }