# gee **Repository Path**: cheerfulwzf/gee ## Basic Information - **Project Name**: gee - **Description**: gee https://geektutu.com/post/gee-day7.html - **Primary Language**: Go - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-05-24 - **Last Updated**: 2022-05-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Gee封装 学习自:极客兔兔https://geektutu.com/post/gee.html 用 Go 语言实现一个简单的 Web 框架,起名叫做`Gee` - 基于http库封装自己的`Engine`接口实现`ServeHTTP(w ResponseWriter, r *Request)`方法 - 将路由封装为`Router`映射`Handler`,并设计上下文`Context`便于操作req和resp - 将`Router`中的map封装的路由表改为前缀树,便于模糊匹配 - 新增路由分组控制,原本由`Engine`负责的路由操作交给`RouterGroup` ~~~go type RouterGroup struct { prefix string middlewares []HandlerFunc //中间件 engine *Engine } ~~~ - 中间件设计:通过调用`(*Context).Next()`函数,中间件可等待用户自己定义的 `Handler`处理结束后,再做一些额外的操作 。 ~~~GO func (group *RouterGroup) Use(middlewares ...HandlerFunc) { group.middlewares = append(group.middlewares, middlewares...) } ~~~ - 服务端模板渲染,使用template库