Rate limit

Technical reference of Rate limit.

This API is used in Rate limit.


Symbols

SymbolClassDescription
RateLimitAllconstRateLimitAll defines a constant value of the API.
RateLimitFiltertypeRateLimitFilter defines a public type of API.
RateLimitFilterIPconstRateLimitFilterIP defines a constant value of the API.
RateLimitFilterSessionconstRateLimitFilterSession defines a constant value of the API.
RateLimitFilterRouteconstRateLimitFilterRoute defines a constant value of the API.
RateLimitFilterMethodconstRateLimitFilterMethod defines a constant value of the API.
RateLimitFilterURLconstRateLimitFilterURL defines a constant value of the API.
RateLimitConfigtypeRateLimitConfig defines a public type of API.
RateLimitRuletypeRateLimitRule defines a public type of API.
RateLimitLimittypeRateLimitLimit defines a public type of API.
RateLimitStrategytypeRateLimitStrategy defines a public type of API.
RateLimitFixedWindowtypeRateLimitFixedWindow defines a public type of API.
RateLimitSlidingWindowtypeRateLimitSlidingWindow defines a public type of API.
RateLimitTokenBuckettypeRateLimitTokenBucket defines a public type of API.
RateLimitLeakyBuckettypeRateLimitLeakyBucket defines a public type of API.

RateLimitAll

Declaration:

gox
const RateLimitAll = "ALL"

RateLimitAll defines a constant value of the API.


RateLimitFilter

Declaration:

gox
type RateLimitFilter string

RateLimitFilter defines a public type of API.


RateLimitFilterIP

Declaration:

gox
RateLimitFilterIP      RateLimitFilter = "ip"

RateLimitFilterIP defines a constant value of the API.


RateLimitFilterSession

Declaration:

gox
RateLimitFilterSession RateLimitFilter = "session"

RateLimitFilterSession defines a constant value of the API.


RateLimitFilterRoute

Declaration:

gox
RateLimitFilterRoute   RateLimitFilter = "route"

RateLimitFilterRoute defines a constant value of the API.


RateLimitFilterMethod

Declaration:

gox
RateLimitFilterMethod  RateLimitFilter = "method"

RateLimitFilterMethod defines a constant value of the API.


RateLimitFilterURL

Declaration:

gox
RateLimitFilterURL     RateLimitFilter = "url"

RateLimitFilterURL defines a constant value of the API.


RateLimitConfig

Declaration:

gox
type RateLimitConfig struct {
	Enabled bool
	Rules   []RateLimitRule
}

RateLimitConfig defines a public type of API.

Fields

FieldTypeDescription
EnabledboolActivate or disable the function.
Rules[]RateLimitRuleRules set.

RateLimitRule

Declaration:

gox
type RateLimitRule struct {
	Name    string
	Enabled bool
	Methods []string
	Match   string
	Pattern string
	Limits  []RateLimitLimit
}

RateLimitRule defines a public type of API.

Fields

FieldTypeDescription
NamestringName of the value.
EnabledboolActivate or disable the function.
Methods[]stringAssociated method.
MatchstringResult or expression of coincidence.
PatternstringPattern used for coincidence.
Limits[]RateLimitLimitConfigured limit.

RateLimitLimit

Declaration:

gox
type RateLimitLimit struct {
	Name     string
	Enabled  bool
	By       []RateLimitFilter
	Strategy RateLimitStrategy
}

RateLimitLimit defines a public type of API.

Fields

FieldTypeDescription
NamestringName of the value.
EnabledboolActivate or disable the function.
By[]RateLimitFilterPublic data associated with By.
StrategyRateLimitStrategyPublic data associated with Strategy.

RateLimitStrategy

Declaration:

gox
type RateLimitStrategy interface {
	rateLimitStrategy()
}

RateLimitStrategy defines a public type of API.


RateLimitFixedWindow

Declaration:

gox
type RateLimitFixedWindow struct {
	Limit  int
	Window time.Duration
}

RateLimitFixedWindow defines a public type of API.

Fields

FieldTypeDescription
LimitintConfigured limit.
Windowtime.DurationPublic data associated with Window.

RateLimitSlidingWindow

Declaration:

gox
type RateLimitSlidingWindow struct {
	Limit  int
	Window time.Duration
}

RateLimitSlidingWindow defines a public type of API.

Fields

FieldTypeDescription
LimitintConfigured limit.
Windowtime.DurationPublic data associated with Window.

RateLimitTokenBucket

Declaration:

gox
type RateLimitTokenBucket struct {
	Every  time.Duration
	Refill int
	Burst  int
}

RateLimitTokenBucket defines a public type of API.

Fields

FieldTypeDescription
Everytime.DurationPublic data associated with Every.
RefillintPublic data associated with Refill.
BurstintPublic data associated with Burst.

RateLimitLeakyBucket

Declaration:

gox
type RateLimitLeakyBucket struct {
	Every    time.Duration
	Drain    int
	Capacity int
}

RateLimitLeakyBucket defines a public type of API.

Fields

FieldTypeDescription
Everytime.DurationPublic data associated with Every.
DrainintPublic data associated with Drain.
CapacityintPublic data associated with Capacity.

See also

Next step

Continue with WebSocket transport configuration.

WebSocket configuration