iris 路由命名

iris 路由可以设置名称是比较简单的,因为我们只需要设置返回的 *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"))
}

 

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

 

2. 代码中使用路由名称

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

  •  用于获取所有注册的路由
  •  根据名称获取一个路由
  •  基于提供的参数生成 URL 字符串
  •  仅仅基于提供的值生成路径部分而(没有主机和协议)

 

3. 例子

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

当我们在 iris 中讨论中间件的时候,我们就是在讨论运行一个 HTTP 请求处理器前后的代码。例如,日志中间件会把即将到来的请求明细写到日志中,然后在写响应日志详细之前,调用处理期代码。比较酷的是这些中间件是松耦合, ...