全书目录

第三十二篇:Gin 完全指南 —— 高速交警中枢宇宙

第八章:路由分组 —— 一座中枢不会把全国车流全挂在一块大屏上

1 分钟 127 字 第 599 / 962 个阅读单元

Gin 的 Group,本质上是给交警中枢做分区。

go
r := gin.Default()

api := r.Group("/api")
v1 := api.Group("/v1")

v1.GET("/health", healthHandler)
v1.GET("/tickets/:id", getTicket)
v1.POST("/tickets", createTicket)

这张图会变成:

text
总中枢
└── /api
    └── /v1
        ├── GET  /health
        ├── GET  /tickets/:id
        └── POST /tickets

更重要的是,分组不只是为了 URL 更整齐,也是为了给某一片线路加自己的检查站。

go
authorized := r.Group("/api/v1")
authorized.Use(OfficerAuth())

authorized.GET("/tickets", listTickets)
authorized.POST("/tickets", createTicket)

这表示:

text
/api/v1/*
└── 这一整片辖区都必须先经过 OfficerAuth

如果项目变大,你脑子里一定要有这种结构感:

text
高速交警中枢
├── /api/v1/public        -> 公开查询区
├── /api/v1/officer       -> 执勤区
├── /api/v1/admin         -> 管理区
└── /internal             -> 内部联动区

Group 是“辖区划分”,不是单纯的路径拼接。