合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
# 反向查找 就如 [路由](https://github.com/kataras/iris/wiki/Routing) 章节描述的一样, Iris 提供了几种处理程序注册方法,每种方法都返回一个 [路由](https://godoc.org/github.com/kataras/iris/core/router#Route) 实例。 ### 路由命名 路由命名很容易,因为我们只需调用 `*Route` 的 `Name`字段的返回来定义名称: ``` package main import "github.com/kataras/iris/v12" func main() { app := iris.New()     //定义一个函数 h := func(ctx iris.Context) { ctx.HTML("<b>Hi</b1>") }  //处理程序注册和命名 home := app.Get("/", h) home.Name = "home" // 或者 app.Get("/about", h).Name = "about" app.Get("/page/{id}", h).Name = "page" app.Run(iris.Addr(":8080")) } ``` # 路由反向 AKA 从路由名称生成URL 当我们为特定路径注册处理程序时,我们可以根据传递给 Iris 的结构化数据创建 URL。在上面的示例中,我们命名了三个路由器,其中一个甚至带有参数。如果我们使用默认的 `html/template` 视图引擎,则可以使用简单的操作来反转路由(并生成实际的 URL ): ``` Home: {{ urlpath "home" }} About: {{ urlpath "about" }} Page 17: {{ urlpath "page" "17" }} ``` 上面的代码将生成以下输出: ``` Home: http://localhost:8080/ About: http://localhost:8080/about Page 17: http://localhost:8080/page/17 ``` #在代码中使用路由名称 我们可以使用以下方法/函数来处理命名路由(及其参数): * `GetRoutes` 函数获取所有已注册的路由 * `GetRoute(routeName string)` 方法,用于按名称检索路由 * `URL(routeName string, paramValues ...interface{})` 方法可根据提供的参数生成 url 字符串 * `Path(routeName string, paramValues ...interface{} ` 方法可根据提供的值只生成 URL的路径( 不包含主机和协议 )部分