lolly/internal/handler/router.go
xfy b445bca96a feat(server): 实现基础 HTTP 服务器核心功能
使用 fasthttp 替代 net/http,实现 Phase 2 核心模块:
- HTTP 服务器:fasthttp.Server 配置超时和连接限制
- 路由系统:fasthttp/router 基于 radix tree 匹配
- 静态文件服务:安全检查、索引文件支持
- 日志系统:zerolog 结构化日志
- 中间件框架:链式组合接口
- 虚拟主机管理:按 Host 头选择处理器

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-02 15:23:54 +08:00

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
}