跳转到内容

路由器

路由器是 Fox 的核心组件,处理请求路由和中间件。

创建一个没有任何中间件的新路由器:

r := fox.New()

创建一个带有默认中间件(Logger 和 Recovery)的路由器:

r := fox.Default()
r.GET("/path", handler)
r.POST("/path", handler)
r.PUT("/path", handler)
r.DELETE("/path", handler)
r.PATCH("/path", handler)
r.HEAD("/path", handler)
r.OPTIONS("/path", handler)

创建具有共享前缀和中间件的路由组:

api := r.Group("/api")
api.Use(authMiddleware())
{
api.GET("/users", listUsers)
api.POST("/users", createUser)
}
v1 := api.Group("/v1")
{
v1.GET("/products", listProducts)
}

基于域名的路由:

// 精确域名
r.Domain("api.example.com").GET("/users", handler)
// 通配符
r.Domain("*.example.com").GET("/info", handler)
// 正则表达式
r.DomainRegex(`^([a-z]+)\.example\.com$`).GET("/", handler)
// 全局中间件
r.Use(middleware1(), middleware2())
// 组中间件
api := r.Group("/api")
api.Use(authMiddleware())
import "github.com/fox-gonic/fox/middleware"
// 日志中间件
r.Use(middleware.Logger())
// 恢复中间件
r.Use(middleware.Recovery())
// CORS 中间件
r.Use(middleware.CORS())
r.Run(":8080")
r.RunTLS(":8443", "cert.pem", "key.pem")
server := &http.Server{
Addr: ":8080",
Handler: r,
ReadTimeout: 10 * time.Second,
WriteTimeout: 10 * time.Second,
}
server.ListenAndServe()
r := fox.New(
fox.WithLoggerConfig(loggerConfig),
fox.WithMaxMemory(32 << 20), // 32 MB
fox.WithTrustedProxies([]string{"127.0.0.1"}),
)