Files
namegen/middleware.go
T
2025-08-01 00:15:34 +01:00

22 lines
531 B
Go

package main
import (
"net/http"
"golang.org/x/time/rate"
)
// RateLimiter middleware limits requests per IP
func RateLimiter(rps float64, burst int) func(http.Handler) http.Handler {
limiter := rate.NewLimiter(rate.Limit(rps), burst)
return func(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
if !limiter.Allow() {
http.Error(w, http.StatusText(http.StatusTooManyRequests), http.StatusTooManyRequests)
return
}
next.ServeHTTP(w, req)
})
}
}