package router import ( "time" "github.com/go-chi/chi/v5" "github.com/go-chi/chi/v5/middleware" "github.com/go-chi/cors" ) // setupMiddlewares — устанавливает общие middleware для роутера. func setupMiddlewares(r *chi.Mux) { // Логирование всех запросов r.Use(middleware.Logger) // Восстановление после паник r.Use(middleware.Recoverer) // Удаление завершающих слешей r.Use(middleware.StripSlashes) // Установка реального IP из заголовков (X-Forwarded-For, X-Real-IP) r.Use(middleware.RealIP) // Таймаут обработки запроса r.Use(middleware.Timeout(30 * time.Second)) // Поддержка CORS r.Use(cors.Handler(cors.Options{ AllowedOrigins: []string{"https://easysite102.ru", "http://localhost:3000"}, AllowedMethods: []string{"GET", "POST", "PUT", "DELETE", "OPTIONS", "PATCH"}, AllowedHeaders: []string{"Accept", "Authorization", "Content-Type", "X-CSRF-Token", "X-Requested-With"}, ExposedHeaders: []string{"Link"}, AllowCredentials: true, MaxAge: 300, // 5 минут })) // Можно добавить и другие кастомные middleware при необходимости }