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 @ 2022-05-03 17:16  iveBoy  阅读(464)  评论(0编辑  收藏  举报
TOP