Fork me on GitHub

Gin框架系列之路由组

一、什么是路由组

在前面中写入路由是只是单纯的这样使用:

复制代码
func main() {

    router := gin.Default()


        // 路由
    router.GET("/login", Login)
    router.POST("/do_login", DoLogin)
    router.GET("/user", User)
    router.POST("/do_user", DoUser)

    router.Run(":8080")

}
复制代码

但是如果路由比较多,有用户模块、商品模块等,是不是应该进行区分,另外就是随着新版本的发布,是不是应该也进行一下分组,这样更易于管理。

所以在路由组中可以这样使用:

复制代码
package main

import "github.com/gin-gonic/gin"

func main() {
    router := gin.Default()

    // 简单的路由组:v1
    v1 := router.Group("/v1")
    {
        v1.GET("/login", Login)
        v1.POST("/do_login", DoLogin)
        v1.GET("/user", User)
        v1.POST("/do_user", DoUser)
    }

    // 简单的路由组: v2
    v2 := router.Group("/v2")
    {
        v2.GET("/login", Login)
        v2.POST("/do_login", DoLogin)
        v2.GET("/user", User)
        v2.POST("/do_user", DoUser)
    }

    router.Run(":8080")

}
复制代码

二、实例

1、项目目录结构

│  main.go
│
├─routers
│      routers.go
│
└─user
        user.go

2、主文件

复制代码
package main

import (
    "github.com/gin-gonic/gin"
    "go_tutorial/gin_frame/chapter04/demo/routers"
)

func main() {
    router := gin.Default()
    routers.Routers(router)

    router.Run(":8080")
}
复制代码

3、总路由文件

复制代码
package routers

import (
    "github.com/gin-gonic/gin"
    "go_tutorial/gin_frame/chapter04/demo/user"
)

func Routers(router *gin.Engine) {
    user_router := router.Group("/v1")
    user.Routers(user_router)
}
复制代码

4、模块路由文件

复制代码
package user

import "github.com/gin-gonic/gin"

func Routers(user_router *gin.RouterGroup) {

    {
        user_router.GET("/user", User)
        user_router.POST("/do_user", DoUser)
    }

}

func DoUser(context *gin.Context) {

}

func User(context *gin.Context) {

}
复制代码

 

posted @   iveBoy  阅读(480)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
TOP
点击右上角即可分享
微信分享提示

目录导航