2025-03-18 07:43:46 +08:00

19 lines
416 B
Go

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)
})
}