gin框架 路由分组

我们在使用 web 框架开发时,经常会根据业务逻辑给一个模块划分一组路由。

把一个模块相关的方法都写在一个路由下,主要好处是业务逻辑清晰,便于管理和查找相关的代码。

例如:goods 为商品模块,我们规划它的操作路由。

/goods/addGoods 添加商品
/goods/delGoods 删除商品

 

1. 路由分组语法

gin 框架支持路由分组(routes group),路由分组的关键词为 group。

engine.Group("/groupname")

 

2. 路由分组的范例

gin 框架支持路由分组(routes group),路由分组的关键词为 group。

package main

import (
    "fmt"
    "github.com/gin-gonic/gin"
)

func loginEndpoint(c *gin.Context){
    fmt.Println("这是login方法")
}

func submitEndpoint(c *gin.Context){
    fmt.Println("这是submit方法")
}

func readEndpoint(c *gin.Context){
    fmt.Println("这是read方法")
}

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

    //v1组路由
    v1 := engine.Group("/v1")
    {
        v1.GET("/login", loginEndpoint)
        v1.GET("/submit", submitEndpoint)
        v1.GET("/read", readEndpoint)
    }

    //v2组路由
    v2: = engine.Group("/v2")
    {
        v2.GET("/login", loginEndpoint)
        v2.GET("/submit", submitEndpoint)
        v2.GET("/read", readEndpoint)
    }
    engine.Run()
}

打开浏览器,输入 http://localhost:8080,分别访问:

http://localhost:8080/v1/login
http://localhost:8080/v1/submit
http://localhost:8080/v1/read
http://localhost:8080/v2/login
http://localhost:8080/v2/submit
http://localhost:8080/v2/read

浏览器会输出对应的 API 内容。

路由拆分与注册:基本的路由注册:下面最基础的 gin 路由注册方式,适用于路由条目比较少的简单项目或者项目 demo。路由拆分成单独文件或包:当项目的规模增大后就不太适合继续在项目的 main.go 文件中去实现路由注册相关逻辑了,我们会倾向于把路由部分的代码都拆分出来,形成一个单独的文件或包。