扫码订阅《 》或入驻星球,即可阅读文章!

GOLANG ROADMAP

阅读模式

  • 沉浸
  • 自动
  • 日常
首页
Go友会
  • 城市
  • 校园
Go学院
  • Go小课
  • Go小考
  • Go实战
  • 精品课
Go求职
  • 求职辅导🔥
  • Offer收割社群
  • 企业题库
  • 面试宝典
Go宝典
  • 在线宝典
  • B站精选
  • 推荐图书
  • 每日博文
Go仓库
实验区
  • Go周边
  • Go下载
  • Go月刊
消息
更多
  • 用户中心

    • 我的信息
    • 推广返利
  • 玩转星球

    • 星球介绍
    • 角色体系
    • 星主权益
  • 支持与服务

    • 联系星主
    • 成长记录
    • 常见问题
    • 吐槽专区
  • 合作交流

    • 渠道合作
    • 课程入驻
    • 友情链接
author-avatar

GOLANG ROADMAP


首页
Go友会
  • 城市
  • 校园
Go学院
  • Go小课
  • Go小考
  • Go实战
  • 精品课
Go求职
  • 求职辅导🔥
  • Offer收割社群
  • 企业题库
  • 面试宝典
Go宝典
  • 在线宝典
  • B站精选
  • 推荐图书
  • 每日博文
Go仓库
实验区
  • Go周边
  • Go下载
  • Go月刊
消息
更多
  • 用户中心

    • 我的信息
    • 推广返利
  • 玩转星球

    • 星球介绍
    • 角色体系
    • 星主权益
  • 支持与服务

    • 联系星主
    • 成长记录
    • 常见问题
    • 吐槽专区
  • 合作交流

    • 渠道合作
    • 课程入驻
    • 友情链接
  • Iris框架中文文档

    • 概要
    • 功能列表
    • 安装
    • HTTP 主机配置
    • 配置信息
    • HTTP 路由
    • Context机制
    • 动态路由参数
    • 路由命名
    • 路由中间件
    • 打包Router
    • 错误处理
    • MVC 架构
    • MVC电影项目示例
    • MVC之Websockets
    • MVC中使用会话
    • 单一控制器
    • 视图(模板引擎)
    • 会话Sessions
    • Websocket

扫码订阅《 》或入驻星球,即可阅读文章!

路由命名


GOLANG ROADMAP

# 路由和反向查找

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

# 路由名称

路由名称是比较简单的,因为我们只需要设置返回的 *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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

# 从路由名称生成 URL

当我们为某个路径注册处理器的时候,我们就有能力基于传入 iris 的结构化数据创建 URL。在上面的例子中,如果我们用默认的 html/template 引擎,我们可以用一个简单的动作反转路由(生成实际的URL):

Home: {{ urlpath "home" }}
About: {{ urlpath "about" }}
Page 17: {{ urlpath "page" "17" }}

1
2
3
4

上面的代码将生成下面的输出:

Home: http://localhost:8080/
About: http://localhost:8080/about
Page 17: http://localhost:8080/page/17

1
2
3
4

# 代码中使用路由名称

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

  • GetRoutes (opens new window) 用于获取所有注册的路由
  • GetRoute(routeName string) (opens new window) 根据名称获取一个路由
  • URL(routeName string, paramValues ...interface{}) (opens new window) 基于提供的参数生成 URL 字符串
  • Path(routeName string, paramValues ...interface{} (opens new window) 仅仅基于提供的值生成路径部分而(没有主机和协议)

# 例子

更多详细请看 kataras/iris/_examples/view/template_html_4 (opens new window)。

  • 路由和反向查找
  • 路由名称
  • 从路由名称生成 URL
  • 代码中使用路由名称
  • 例子