返回

那些你不了解的gin路由之group

后端

什么是路由组?

路由组是gin框架中的一种机制,它可以帮助你将路由分组,并为每个组定义一组公共的中间件。

路由组的定义如下:

func (r *RouterGroup) Group(relativePath string, handlers ...HandlerFunc) *RouterGroup

其中,relativePath是路由组的相对路径,handlers是路由组的公共中间件。

如何创建路由组?

要创建路由组,可以使用gin框架提供的Group()方法。该方法的语法如下:

func (r *RouterGroup) Group(relativePath string, handlers ...HandlerFunc) *RouterGroup

其中,relativePath是路由组的相对路径,handlers是路由组的公共中间件。

例如,以下代码创建了一个名为“v1”的路由组,并为该组定义了一个公共的中间件:

r.Group("/v1", func() {
    // 在此定义路由组的公共中间件
})

如何在路由组中定义中间件?

要在路由组中定义中间件,可以使用gin框架提供的Use()方法。该方法的语法如下:

func (r *RouterGroup) Use(handlers ...HandlerFunc)

其中,handlers是你要定义的中间件。

例如,以下代码在“v1”路由组中定义了一个名为“auth”的中间件:

r.Group("/v1").Use(authMiddleware)

如何在路由组中嵌套路由?

要在路由组中嵌套路由,可以使用gin框架提供的Group()方法。该方法的语法如下:

func (r *RouterGroup) Group(relativePath string, handlers ...HandlerFunc) *RouterGroup

其中,relativePath是路由组的相对路径,handlers是路由组的公共中间件。

例如,以下代码在“v1”路由组中嵌套了一个名为“users”的路由组:

r.Group("/v1").Group("/users", func() {
    // 在此定义“users”路由组的路由
})

如何使用路由组生成文档?

要使用路由组生成文档,可以使用gin框架提供的Swagger()方法。该方法的语法如下:

func (r *RouterGroup) Swagger(title, description string) *swag.Engine

其中,title是文档的标题,description是文档的。

例如,以下代码使用“v1”路由组生成了一个名为“API文档”的文档:

r.Group("/v1").Swagger("API文档", "这是一个API文档")

如何在路由组中使用路由参数?

要在路由组中使用路由参数,可以使用gin框架提供的Param()方法。该方法的语法如下:

func (r *RouterGroup) Param(key, regexp string)

其中,key是路由参数的名称,regexp是路由参数的正则表达式。

例如,以下代码在“v1”路由组中定义了一个名为“id”的路由参数:

r.Group("/v1").Param("id", "[0-9]+")

现在,你可以在“v1”路由组中的路由中使用“id”路由参数。例如,以下代码定义了一个名为“GetUser”的路由,该路由使用“id”路由参数来获取一个用户:

r.Group("/v1").GET("/users/:id", GetUser)