package middleware import ( "net/http" "golang.org/x/time/rate" ) var limiter = rate.NewLimiter(rate.Every(1*time.Minute), 5) // 请求频率限制中间件 func RateLimit(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { if !limiter.Allow() { http.Error(w, "请求过于频繁", http.StatusTooManyRequests) return } next.ServeHTTP(w, r) }) }