- config: 为 Config 和所有子配置结构添加完整文档,包含使用示例和注意事项 - stream: 为负载均衡器和服务器添加详细的参数、返回值和功能说明 - logging: 为日志格式化和输出函数添加文档,说明支持的变量替换 - handler: 为路由器、静态文件和 sendfile 处理器添加文档 - proxy: 为健康检查器和代理功能添加完整文档 - cache/server/ssl/middleware: 补充相关模块的文档注释 - config.example.yaml: 添加可信代理配置、加密套件示例,更新压缩级别说明 Co-Authored-By: Claude <noreply@anthropic.com>
120 lines
2.9 KiB
Go
120 lines
2.9 KiB
Go
// Package handler 提供 HTTP 请求处理器,包括路由、静态文件服务和零拷贝传输。
|
||
//
|
||
// 该文件包含路由器相关的核心逻辑,包括:
|
||
// - HTTP 方法路由注册(GET、POST、PUT、DELETE、HEAD)
|
||
// - 路由器创建和处理器获取
|
||
//
|
||
// 主要用途:
|
||
//
|
||
// 用于管理 HTTP 请求的路由分发,将请求路径映射到对应的处理器。
|
||
//
|
||
// 注意事项:
|
||
// - 底层使用 fasthttp/router 实现
|
||
// - 所有路由方法均为并发安全
|
||
//
|
||
// 作者:xfy
|
||
package handler
|
||
|
||
import (
|
||
"github.com/fasthttp/router"
|
||
"github.com/valyala/fasthttp"
|
||
)
|
||
|
||
// Router HTTP 请求路由器。
|
||
//
|
||
// 封装 fasthttp/router,提供简洁的路由注册接口。
|
||
// 支持 GET、POST、PUT、DELETE、HEAD 等 HTTP 方法。
|
||
type Router struct {
|
||
// router 底层 fasthttp 路由器实例
|
||
router *router.Router
|
||
}
|
||
|
||
// NewRouter 创建路由器。
|
||
//
|
||
// 初始化并返回一个新的 Router 实例,底层使用 fasthttp/router 实现。
|
||
//
|
||
// 返回值:
|
||
// - *Router: 新创建的路由器实例
|
||
//
|
||
// 使用示例:
|
||
//
|
||
// r := handler.NewRouter()
|
||
// r.GET("/api", myHandler)
|
||
func NewRouter() *Router {
|
||
return &Router{
|
||
router: router.New(),
|
||
}
|
||
}
|
||
|
||
// GET 注册 GET 路由。
|
||
//
|
||
// 将指定路径映射到对应的处理器函数。
|
||
//
|
||
// 参数:
|
||
// - path: 路由路径,支持参数化路径如 /user/{id}
|
||
// - handler: 请求处理函数
|
||
func (r *Router) GET(path string, handler fasthttp.RequestHandler) {
|
||
r.router.GET(path, handler)
|
||
}
|
||
|
||
// POST 注册 POST 路由。
|
||
//
|
||
// 将指定路径映射到对应的处理器函数。
|
||
//
|
||
// 参数:
|
||
// - path: 路由路径,支持参数化路径
|
||
// - handler: 请求处理函数
|
||
func (r *Router) POST(path string, handler fasthttp.RequestHandler) {
|
||
r.router.POST(path, handler)
|
||
}
|
||
|
||
// PUT 注册 PUT 路由。
|
||
//
|
||
// 将指定路径映射到对应的处理器函数。
|
||
//
|
||
// 参数:
|
||
// - path: 路由路径
|
||
// - handler: 请求处理函数
|
||
func (r *Router) PUT(path string, handler fasthttp.RequestHandler) {
|
||
r.router.PUT(path, handler)
|
||
}
|
||
|
||
// DELETE 注册 DELETE 路由。
|
||
//
|
||
// 将指定路径映射到对应的处理器函数。
|
||
//
|
||
// 参数:
|
||
// - path: 路由路径
|
||
// - handler: 请求处理函数
|
||
func (r *Router) DELETE(path string, handler fasthttp.RequestHandler) {
|
||
r.router.DELETE(path, handler)
|
||
}
|
||
|
||
// HEAD 注册 HEAD 路由。
|
||
//
|
||
// 将指定路径映射到对应的处理器函数。
|
||
//
|
||
// 参数:
|
||
// - path: 路由路径
|
||
// - handler: 请求处理函数
|
||
func (r *Router) HEAD(path string, handler fasthttp.RequestHandler) {
|
||
r.router.HEAD(path, handler)
|
||
}
|
||
|
||
// Handler 返回路由处理器。
|
||
//
|
||
// 获取可用于 fasthttp.Server 的请求处理器。
|
||
// 该处理器会根据注册的路由规则分发请求。
|
||
//
|
||
// 返回值:
|
||
// - fasthttp.RequestHandler: 请求处理器函数
|
||
//
|
||
// 使用示例:
|
||
//
|
||
// server := &fasthttp.Server{
|
||
// Handler: r.Handler(),
|
||
// }
|
||
func (r *Router) Handler() fasthttp.RequestHandler {
|
||
return r.router.Handler
|
||
}
|