使用 fasthttp 替代 net/http,实现 Phase 2 核心模块: - HTTP 服务器:fasthttp.Server 配置超时和连接限制 - 路由系统:fasthttp/router 基于 radix tree 匹配 - 静态文件服务:安全检查、索引文件支持 - 日志系统:zerolog 结构化日志 - 中间件框架:链式组合接口 - 虚拟主机管理:按 Host 头选择处理器 Co-Authored-By: Claude <noreply@anthropic.com>
48 lines
1.0 KiB
Go
48 lines
1.0 KiB
Go
package handler
|
|
|
|
import (
|
|
"github.com/fasthttp/router"
|
|
"github.com/valyala/fasthttp"
|
|
)
|
|
|
|
// Router 请求路由器
|
|
type Router struct {
|
|
router *router.Router
|
|
}
|
|
|
|
// NewRouter 创建路由器
|
|
func NewRouter() *Router {
|
|
return &Router{
|
|
router: router.New(),
|
|
}
|
|
}
|
|
|
|
// GET 注册 GET 路由
|
|
func (r *Router) GET(path string, handler fasthttp.RequestHandler) {
|
|
r.router.GET(path, handler)
|
|
}
|
|
|
|
// POST 注册 POST 路由
|
|
func (r *Router) POST(path string, handler fasthttp.RequestHandler) {
|
|
r.router.POST(path, handler)
|
|
}
|
|
|
|
// PUT 注册 PUT 路由
|
|
func (r *Router) PUT(path string, handler fasthttp.RequestHandler) {
|
|
r.router.PUT(path, handler)
|
|
}
|
|
|
|
// DELETE 注册 DELETE 路由
|
|
func (r *Router) DELETE(path string, handler fasthttp.RequestHandler) {
|
|
r.router.DELETE(path, handler)
|
|
}
|
|
|
|
// HEAD 注册 HEAD 路由
|
|
func (r *Router) HEAD(path string, handler fasthttp.RequestHandler) {
|
|
r.router.HEAD(path, handler)
|
|
}
|
|
|
|
// Handler 返回路由处理器
|
|
func (r *Router) Handler() fasthttp.RequestHandler {
|
|
return r.router.Handler
|
|
} |