• 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) {
    
    }
  • 相关阅读:
    qsort
    strcmp
    LotteryDrawing
    retire or not retire ? is a question.
    alloc && afree
    strlen
    c point
    c point ccccc
    MySQL MGR源码分析2
    MySQL MGR实现分析
  • 原文地址:https://www.cnblogs.com/shenjianping/p/16218758.html
Copyright © 2020-2023  润新知