package middleware import ( "github.com/gin-gonic/gin" "golang.org/x/time/rate" ) func RateLimit(rps int, burst int) gin.HandlerFunc { limiter := rate.NewLimiter(rate.Limit(rps), burst) return func(c *gin.Context) { if !limiter.Allow() { c.AbortWithStatusJSON(429, gin.H{"error": "too many requests"}) return } c.Next() } }