package limit import ( "github.com/gin-gonic/gin" "github.com/juju/ratelimit" ) type LimiterIface interface { Key(c *gin.Context) string GetBucket(key string) (*ratelimit.Bucket, bool) AddBucketsByUri(uri string, fillInterval, capacity, quantum int64) LimiterIface AddBucketByConf(rules map[string]*LimitOpt) LimiterIface } type Limiter struct { limiterBuckets map[string]*ratelimit.Bucket }