feat: 完善后端脚手架基础能力
This commit is contained in:
@@ -7,6 +7,8 @@ import (
|
||||
"skeleton/routes/ws"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/prometheus/client_golang/prometheus/promhttp"
|
||||
"go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin"
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
@@ -24,11 +26,22 @@ func SetupRoutes(cfg *config.Config) *gin.Engine {
|
||||
r.MaxMultipartMemory = 100 << 20 // 100 MB
|
||||
|
||||
// 添加自定义中间件
|
||||
r.Use(middlewares.RequestID())
|
||||
if cfg.Observability.TracingEnabled {
|
||||
r.Use(otelgin.Middleware(cfg.Observability.TracingService))
|
||||
}
|
||||
if cfg.Observability.MetricsEnabled {
|
||||
r.Use(middlewares.Metrics())
|
||||
}
|
||||
r.Use(middlewares.CORS()) // CORS跨域处理(需要在其他中间件之前)
|
||||
r.Use(middlewares.GinLogger()) // 结构化日志
|
||||
r.Use(middlewares.GinRecovery()) // 异常恢复
|
||||
r.Use(middlewares.ErrorLogging()) // 错误响应日志(用于记录逻辑异常)
|
||||
|
||||
if cfg.Observability.MetricsEnabled {
|
||||
r.GET(cfg.Observability.MetricsPath, gin.WrapH(promhttp.Handler()))
|
||||
}
|
||||
|
||||
// API 路由组
|
||||
api := r.Group("/api")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user