在Iris框架中,路由分组(Route Groups)是一种将多个路由组织在一起的方式,以便更好地管理和维护路由。你可以通过将路由分组挂载到主应用上来实现这一点。以下是具体步骤:
首先,你需要创建一个路由分组。你可以使用 app.Party
方法来创建一个路由分组。Party
方法接受一个路径前缀,所有在这个分组中定义的路由都会自动加上这个前缀。
package main
import (
"github.com/kataras/iris/v12"
)
func main() {
app := iris.New()
// 创建一个路由分组,路径前缀为 "/api"
api := app.Party("/api")
{
// 在这个分组中定义路由
api.Get("/users", func(ctx iris.Context) {
ctx.JSON(iris.Map{"message": "Get all users"})
})
api.Post("/users", func(ctx iris.Context) {
ctx.JSON(iris.Map{"message": "Create a new user"})
})
}
// 启动应用
app.Listen(":8080")
}
在上面的例子中,api
是一个路由分组,它的路径前缀是 /api
。所有在这个分组中定义的路由都会自动加上 /api
前缀。例如:
/api/users
对应 api.Get("/users", ...)
/api/users
对应 api.Post("/users", ...)
最后,通过 app.Listen(":8080")
启动应用,所有的路由分组和路由都会自动挂载到主应用上。
你还可以在路由分组中嵌套其他路由分组,以实现更复杂的路由结构。
package main
import (
"github.com/kataras/iris/v12"
)
func main() {
app := iris.New()
// 创建一个路由分组,路径前缀为 "/api"
api := app.Party("/api")
{
// 在 "/api" 分组中嵌套一个 "/v1" 分组
v1 := api.Party("/v1")
{
v1.Get("/users", func(ctx iris.Context) {
ctx.JSON(iris.Map{"message": "Get all users (v1)"})
})
v1.Post("/users", func(ctx iris.Context) {
ctx.JSON(iris.Map{"message": "Create a new user (v1)"})
})
}
// 在 "/api" 分组中嵌套一个 "/v2" 分组
v2 := api.Party("/v2")
{
v2.Get("/users", func(ctx iris.Context) {
ctx.JSON(iris.Map{"message": "Get all users (v2)"})
})
v2.Post("/users", func(ctx iris.Context) {
ctx.JSON(iris.Map{"message": "Create a new user (v2)"})
})
}
}
// 启动应用
app.Listen(":8080")
}
在这个例子中,/api/v1/users
和 /api/v2/users
分别对应不同的路由处理函数。
通过 app.Party
方法,你可以轻松地创建和管理路由分组,并将它们挂载到主应用上。这种方式使得路由的组织和维护变得更加清晰和模块化。