Copyright © 2022-2025 aizws.net · 网站版本: v1.2.6·内部版本: v1.25.2·
            页面加载耗时 0.00 毫秒·物理内存 158.3MB ·虚拟内存 1438.3MB
        
        欢迎来到 AI 中文社区(简称 AI 中文社),这里是学习交流 AI 人工智能技术的中文社区。 为了更好的体验,本站推荐使用 Chrome 浏览器。
        
        
        我们在使用 web 框架开发时,经常会根据业务逻辑给一个模块划分一组路由。
把一个模块相关的方法都写在一个路由下,主要好处是业务逻辑清晰,便于管理和查找相关的代码。
例如:goods 为商品模块,我们规划它的操作路由。
/goods/addGoods 添加商品 /goods/delGoods 删除商品
gin 框架支持路由分组(routes group),路由分组的关键词为 group。
engine.Group("/groupname")
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 文件中去实现路由注册相关逻辑了,我们会倾向于把路由部分的代码都拆分出来,形成一个单独的文件或包。