路由命名

未匹配的标注

路由和反向查找

正如 处理器 这里提到的,iris 提供了几个处理器注册方法,他们每个都返回一个 Route 实例。

路由名称

路由名称是比较简单的,因为我们只需要设置返回的 *Route  实例的  Name 字段即可:

package main

import (
    "github.com/kataras/iris"
)

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"))
}

从路由名称生成 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

代码中使用路由名称

我们可以用下面的 方法/函数 处理命名路由(和他们的参数):

例子

更多详细请看 kataras/iris/_examples/view/template_html_...

本文章首发在 LearnKu.com 网站上。

本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://learnku.com/docs/iris-go/10/rout...

译文地址:https://learnku.com/docs/iris-go/10/rout...

上一篇 下一篇