4.02 课后复习-Route
(base) yanglei@yuanhong v4-rc % tree ./
./
├── context.go
├── handle_func.go
├── server.go
├── server_interface.go
└── server_test.go
0 directories, 5 filesPART1. 定义路由森林与节点
1.1 定义节点
package v4_rc
// node 路由树中的节点
type node struct {
// pattern 路由路径
pattern string
// children 子节点 key为子节点的路由路径 value为路径对应子节点
children map[string]*node
// HandleFunc 路由对应的处理函数
HandleFunc
}1.2 定义路由森林
1.3 定义添加路由的操作
PART2. 组合路由森林与Server
PART3. 静态路由注册
3.1 编写测试方法
3.1.1 构造路由树
3.1.2 断言路由森林
3.1.3 断言路由树
3.2 添加测试用例
3.3 实现addRoute方法
3.3.1 根据method查找路由树,不存在则创建
3.3.2 对根节点做特殊处理
3.3.3 从根节点开始逐层查找目标节点,找到目标节点后添加HandleFunc
3.4 测试用例
3.4.1 对根节点的测试用例
3.4.2 前导/user节点的测试用例
3.4.3 /order/detail节点的测试用例
3.4.4 其他HTTP动词的测试用例
3.4.5 非法用例
PART4. 静态路由查找
4.1 编写测试函数
4.2 定义测试用例的类型
4.3 定义测试的过程
4.4 构造测试用例
4.5 根据测试用例开发findRoute()
4.5.1 HTTP动词对应的路由树不存在
4.5.2 完全命中
4.5.3 命中了path对应的节点,但HandleFunc为nil
4.5.4 根节点
4.5.5 path对应的节点不存在
PART5. route集成至Server
5.1 实现
5.2 测试
PART6. 通配符路由的注册与查找
6.1 通配符路由的定义与设计
6.1.1 通配符路由的定义
6.1.2 通配符路由的设计
6.2 通配符路由的注册
6.2.1 修改node的结构
node的结构6.2.2 定义测试用例
6.2.3 修改创建子节点的逻辑
6.2.4 修改判断子节点相等的逻辑
6.2.5 添加其他测试用例
6.3 通配符路由的匹配
6.3.1 实现
6.3.2 测试
PART7. 参数路由的注册与查找
7.1 参数路由的定义与设计
7.1.1 参数路由的定义
7.1.2 参数路径的设计
7.2 实现参数路由节点的创建
7.2.1 修改node的结构
7.2.2 定义测试用例
7.2.3 修改创建子节点的逻辑
7.2.4 修改判断子节点相等的逻辑
7.3 参数路由的校验
7.3.1 实现校验逻辑
7.3.2 测试
7.4 参数路由的查找
7.4.1 编写测试用例
7.4.2 实现参数路由的查找
7.5 参数路由的参数值
7.5.1 定义新类型
7.5.2 修改node.childOf()方法
node.childOf()方法7.5.3 为matchNode结构体添加写入路由参数的方法
matchNode结构体添加写入路由参数的方法7.5.4 修改router.findRoute()方法
router.findRoute()方法7.5.5 修改Context结构体
Context结构体7.5.6 修改HTTPServer.serve()方法
HTTPServer.serve()方法7.5.7 测试HTTPServer
Last updated