8.03 课后复习-Middleware-AccessLog
PART1. 使用生成器模式创建Middleware
package accessLog
import "web"
// AccessMiddlewareBuilder 日志中间件构建器
type AccessMiddlewareBuilder struct{}
// Build 本方法用于构建一个日志中间件
func (b *AccessMiddlewareBuilder) Build() web.Middleware {
return func(next web.HandleFunc) web.HandleFunc {
return func(ctx *web.Context) {
next(ctx)
// 在这里记录日志 例如:命中的路由/HTTP动词/请求参数等
}
}
}PART2. 定义中间件结构
PART3. 获取要记录的字段值
3.1 基本实现
3.2 记录命中的路由
step1. Context结构体增加用于记录命中的路由的字段
step2. Node结构体中增加用于记录命中该节点时的全路由的字段
step3. 添加节点时记录全路由
step4. 查找到节点后将节点的全路由赋值给Context
step5. 中间件中从Context中取值即可
PART4. 写日志操作
4.1 定义记录日志的函数
4.2 调用记录日志的函数
PART5. 传递中间件
5.1 定义选项函数类型
5.2 定义With()函数
5.3 实例化HttpServer时根据选项函数修改成员属性的值
PART6. 测试
Last updated