Gin框架
Gin框架 路由分组和抽离
## 路由分组 ```go package main import ( "net/http" "github.com/gin-gonic/gin" ) func main() { router := gin.Default() // 简单的路由组: home home := router.Group("/home") { home.POST("/login", loginEndpoint) home.POST("/submit", submitEndpoint) home.POST("/read", readEndpoint) } // 简单的路由组: admin admin := router.Group("/admin") { admin.POST("/login", loginEndpoint) admin.POST("/submit", submitEndpoint) admin.POST("/read", readEndpoint) } // 简单的路由组: api api := router.Group("/api") { api.POST("/login", loginEndpoint) api.POST("/submit", submitEndpoint) api.POST("/read", readEndpoint) } router.Run(":8080") } func loginEndpoint(c *gin.Context) { c.String(http.StatusOK, "loginEndpoint") } func submitEndpoint(c *gin.Context) { c.String(http.StatusOK, "submitEndpoint") } func readEndpoint(c *gin.Context) { c.String(http.StatusOK, "readEndpoint") } ``` ## 路由抽离 在项目目录下建立router目录,并在router目录中创建admin.go、home.go、api.go文件,如下 ```go src |-test //项目目录 |-routers |-admin.go |-home.go |-api.go |-main.go ``` - **admin.go文件** ```go package routers import ( "github.com/gin-gonic/gin" "net/http" ) func AdminRoutersInit(r *gin.Engine) { adminRouter := r.Group("/admin") { adminRouter.GET("/", func(c *gin.Context) { c.String(http.StatusOK, "后台首页") }) adminRouter.GET("/article", func(c *gin.Context) { c.String(http.StatusOK, "文章管理") }) adminRouter.GET("/menu", func(c *gin.Context) { c.String(http.StatusOK, "菜单管理") }) } } ``` - **home.go文件** ```go package routers import ( "github.com/gin-gonic/gin" "net/http" ) func HomeRoutersInit(r *gin.Engine) { homeRouter := r.Group("/home") { homeRouter.GET("/", func(c *gin.Context) { c.String(http.StatusOK, "前台首页") }) homeRouter.GET("/about", func(c *gin.Context) { c.String(http.StatusOK, "公司介绍") }) homeRouter.GET("/news", func(c *gin.Context) { c.String(http.StatusOK, "公司新闻") }) } } ``` - **api.go文件** ```go package routers import ( "github.com/gin-gonic/gin" "net/http" ) func apiRoutersInit(r *gin.Engine) { apiRouter := r.Group("/api") { apiRouter.GET("/getUserList", func(c *gin.Context) { c.String(http.StatusOK, "获取用户列表") }) apiRouter.GET("/getOrderList", func(c *gin.Context) { c.String(http.StatusOK, "获取订单列表") }) apiRouter.GET("/getNewsList", func(c *gin.Context) { c.String(http.StatusOK, "获取新闻列表") }) } } ``` - **main.g文件** ```go package main import ( "net/http" "test/routers" //引入上面抽离的router文件,test是项目目录 "github.com/gin-gonic/gin" ) func main() { r := gin.Default() //引入router routers.AdminRoutersInit(r) routers.HomeRoutersInit(r) routers.ApiRoutersInit(r) r.Run() } ```
顶部
收展
底部
[TOC]
目录
Gin框架 安装
Gin框架 基本路由
Gin框架 路由传值与或参数
Gin框架 路由分组和抽离
Gin框架 自定义控制器
Gin框架 中间件
Gin框架 模板
相关推荐
Go标准库