在Iris框架中,app.Party("/v1")
用于创建一个路由分组,这个分组的所有路由都会以 /v1
作为前缀。这个分组本身是一个独立的 Application
实例,但它与主应用 app
是关联的。主应用 app
能够感知到这个分组的存在,因为分组的路由会被注册到主应用的路由表中。
具体来说,app.Party("/v1")
返回的是一个 Party
对象,这个对象实际上是一个 Application
的代理。当你在这个分组上定义路由时,这些路由会被自动注册到主应用 app
的路由表中,并且会带有 /v1
前缀。
package main
import (
"github.com/kataras/iris/v12"
)
func main() {
app := iris.New()
// 创建一个路由分组,前缀为 /v1
v1 := app.Party("/v1")
{
// 在 /v1 分组下定义一个 GET 路由
v1.Get("/users", func(ctx iris.Context) {
ctx.JSON(iris.Map{"message": "Get all users"})
})
// 在 /v1 分组下定义一个 POST 路由
v1.Post("/users", func(ctx iris.Context) {
ctx.JSON(iris.Map{"message": "Create a new user"})
})
}
// 主应用的路由
app.Get("/", func(ctx iris.Context) {
ctx.JSON(iris.Map{"message": "Welcome to the main app"})
})
// 启动应用
app.Listen(":8080")
}
路由分组创建:v1 := app.Party("/v1")
创建了一个路由分组,所有在这个分组下定义的路由都会自动带有 /v1
前缀。
路由注册:在 v1
分组下定义的 /users
路由实际上会被注册为 /v1/users
。主应用 app
会感知到这个路由,并将其添加到自己的路由表中。
主应用感知:主应用 app
会处理所有传入的请求,并根据请求的路径匹配相应的路由。由于 v1
分组的路由已经被注册到主应用的路由表中,因此主应用能够正确处理 /v1/users
这样的请求。
通过 app.Party("/v1")
创建的路由分组会被主应用 app
感知,因为分组的路由会被注册到主应用的路由表中。主应用会处理所有传入的请求,并根据路径匹配相应的路由,无论这些路由是直接定义在主应用上,还是定义在某个分组上。