Documentation
¶
Index ¶
- func CompressionMiddleware(config *CompressionConfig) httpcontract.Middleware
- func CorsMiddleware(config *CorsConfig) httpcontract.Middleware
- func DefaultCompressionMiddleware() httpcontract.Middleware
- func DefaultCorsMiddleware() httpcontract.Middleware
- func IpRateLimit(requestsPerMinute int) httpcontract.Middleware
- func RateLimitMiddleware(config *RateLimitConfig) httpcontract.Middleware
- func RestrictiveCors(allowedOrigins ...string) httpcontract.Middleware
- func SimpleRateLimit(requestsPerMinute int) httpcontract.Middleware
- func StaticMiddleware(options *static.Options) httpcontract.Middleware
- func UserRateLimit(requestsPerMinute int, getUserId KeyExtractor) httpcontract.Middleware
- type CompressionConfig
- func (instance *CompressionConfig) ExcludedContentTypes() []string
- func (instance *CompressionConfig) ExcludedPaths() []string
- func (instance *CompressionConfig) Level() int
- func (instance *CompressionConfig) MinSize() int
- func (instance *CompressionConfig) SetExcludedContentTypes(excludedContentTypes []string)
- func (instance *CompressionConfig) SetExcludedPaths(excludedPaths []string)
- func (instance *CompressionConfig) SetLevel(level int)
- func (instance *CompressionConfig) SetMinSize(minSize int)
- type CorsConfig
- func (instance *CorsConfig) AllowCredentials() bool
- func (instance *CorsConfig) AllowHeaders() []string
- func (instance *CorsConfig) AllowMethods() []string
- func (instance *CorsConfig) AllowOriginFunc() func(origin string) bool
- func (instance *CorsConfig) AllowOrigins() []string
- func (instance *CorsConfig) ExposeHeaders() []string
- func (instance *CorsConfig) MaxAge() int
- func (instance *CorsConfig) SetAllowHeaders(allowHeaders []string)
- func (instance *CorsConfig) SetAllowMethods(allowMethods []string)
- func (instance *CorsConfig) SetAllowOrigins(allowOrigins []string)
- type KeyExtractor
- type OnLimitExceeded
- type RateLimitConfig
- func (instance *RateLimitConfig) KeyExtractor() KeyExtractor
- func (instance *RateLimitConfig) Limiter() httpcontract.RateLimiter
- func (instance *RateLimitConfig) OnLimitExceeded() OnLimitExceeded
- func (instance *RateLimitConfig) SetKeyExtractor(keyExtractor KeyExtractor)
- func (instance *RateLimitConfig) SetOnLimitExceeded(onLimitExceeded OnLimitExceeded)
- type SlidingWindowLimiter
- type TokenBucketLimiter
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CompressionMiddleware ¶
func CompressionMiddleware(config *CompressionConfig) httpcontract.Middleware
func CorsMiddleware ¶
func CorsMiddleware(config *CorsConfig) httpcontract.Middleware
func DefaultCompressionMiddleware ¶
func DefaultCompressionMiddleware() httpcontract.Middleware
func DefaultCorsMiddleware ¶
func DefaultCorsMiddleware() httpcontract.Middleware
func IpRateLimit ¶
func IpRateLimit(requestsPerMinute int) httpcontract.Middleware
func RateLimitMiddleware ¶
func RateLimitMiddleware(config *RateLimitConfig) httpcontract.Middleware
func RestrictiveCors ¶
func RestrictiveCors(allowedOrigins ...string) httpcontract.Middleware
func SimpleRateLimit ¶
func SimpleRateLimit(requestsPerMinute int) httpcontract.Middleware
func StaticMiddleware ¶
func StaticMiddleware( options *static.Options, ) httpcontract.Middleware
func UserRateLimit ¶
func UserRateLimit( requestsPerMinute int, getUserId KeyExtractor, ) httpcontract.Middleware
Types ¶
type CompressionConfig ¶
type CompressionConfig struct {
// contains filtered or unexported fields
}
func DefaultCompressionConfig ¶
func DefaultCompressionConfig() *CompressionConfig
func NewCompressionConfig ¶
func NewCompressionConfig( level int, minSize int, excludedContentTypes []string, excludedPaths []string, ) *CompressionConfig
func (*CompressionConfig) ExcludedContentTypes ¶
func (instance *CompressionConfig) ExcludedContentTypes() []string
func (*CompressionConfig) ExcludedPaths ¶
func (instance *CompressionConfig) ExcludedPaths() []string
func (*CompressionConfig) Level ¶
func (instance *CompressionConfig) Level() int
func (*CompressionConfig) MinSize ¶
func (instance *CompressionConfig) MinSize() int
func (*CompressionConfig) SetExcludedContentTypes ¶
func (instance *CompressionConfig) SetExcludedContentTypes(excludedContentTypes []string)
func (*CompressionConfig) SetExcludedPaths ¶
func (instance *CompressionConfig) SetExcludedPaths(excludedPaths []string)
func (*CompressionConfig) SetLevel ¶
func (instance *CompressionConfig) SetLevel(level int)
func (*CompressionConfig) SetMinSize ¶
func (instance *CompressionConfig) SetMinSize(minSize int)
type CorsConfig ¶
type CorsConfig struct {
// contains filtered or unexported fields
}
func DefaultCorsConfig ¶
func DefaultCorsConfig() *CorsConfig
func NewCorsConfig ¶
func RestrictiveCorsConfig ¶
func RestrictiveCorsConfig(allowedOrigins []string) *CorsConfig
func (*CorsConfig) AllowCredentials ¶
func (instance *CorsConfig) AllowCredentials() bool
func (*CorsConfig) AllowHeaders ¶
func (instance *CorsConfig) AllowHeaders() []string
func (*CorsConfig) AllowMethods ¶
func (instance *CorsConfig) AllowMethods() []string
func (*CorsConfig) AllowOriginFunc ¶
func (instance *CorsConfig) AllowOriginFunc() func(origin string) bool
func (*CorsConfig) AllowOrigins ¶
func (instance *CorsConfig) AllowOrigins() []string
func (*CorsConfig) ExposeHeaders ¶
func (instance *CorsConfig) ExposeHeaders() []string
func (*CorsConfig) MaxAge ¶
func (instance *CorsConfig) MaxAge() int
func (*CorsConfig) SetAllowHeaders ¶
func (instance *CorsConfig) SetAllowHeaders(allowHeaders []string)
func (*CorsConfig) SetAllowMethods ¶
func (instance *CorsConfig) SetAllowMethods(allowMethods []string)
func (*CorsConfig) SetAllowOrigins ¶
func (instance *CorsConfig) SetAllowOrigins(allowOrigins []string)
type KeyExtractor ¶
type KeyExtractor = func(httpcontract.Request) string
type OnLimitExceeded ¶
type OnLimitExceeded = func(httpcontract.Request) (httpcontract.Response, error)
type RateLimitConfig ¶
type RateLimitConfig struct {
// contains filtered or unexported fields
}
func NewRateLimitConfig ¶
func NewRateLimitConfig( limiter httpcontract.RateLimiter, keyExtractor KeyExtractor, onLimitExceeded OnLimitExceeded, ) *RateLimitConfig
func (*RateLimitConfig) KeyExtractor ¶
func (instance *RateLimitConfig) KeyExtractor() KeyExtractor
func (*RateLimitConfig) Limiter ¶
func (instance *RateLimitConfig) Limiter() httpcontract.RateLimiter
func (*RateLimitConfig) OnLimitExceeded ¶
func (instance *RateLimitConfig) OnLimitExceeded() OnLimitExceeded
func (*RateLimitConfig) SetKeyExtractor ¶
func (instance *RateLimitConfig) SetKeyExtractor(keyExtractor KeyExtractor)
func (*RateLimitConfig) SetOnLimitExceeded ¶
func (instance *RateLimitConfig) SetOnLimitExceeded(onLimitExceeded OnLimitExceeded)
type SlidingWindowLimiter ¶
type SlidingWindowLimiter struct {
// contains filtered or unexported fields
}
func NewSlidingWindowLimiter ¶
func NewSlidingWindowLimiter(limit int, window time.Duration) *SlidingWindowLimiter
func NewSlidingWindowLimiterWithClock ¶
func NewSlidingWindowLimiterWithClock(clockInstance clockcontract.Clock, limit int, window time.Duration) *SlidingWindowLimiter
func (*SlidingWindowLimiter) Allow ¶
func (instance *SlidingWindowLimiter) Allow(key string) bool
func (*SlidingWindowLimiter) Close ¶
func (instance *SlidingWindowLimiter) Close() error
func (*SlidingWindowLimiter) Reset ¶
func (instance *SlidingWindowLimiter) Reset(key string)
type TokenBucketLimiter ¶
type TokenBucketLimiter struct {
// contains filtered or unexported fields
}
func NewTokenBucketLimiter ¶
func NewTokenBucketLimiter(rate int, window time.Duration) *TokenBucketLimiter
func NewTokenBucketLimiterWithClock ¶
func NewTokenBucketLimiterWithClock(clockInstance clockcontract.Clock, rate int, window time.Duration) *TokenBucketLimiter
func (*TokenBucketLimiter) Allow ¶
func (instance *TokenBucketLimiter) Allow(key string) bool
func (*TokenBucketLimiter) Close ¶
func (instance *TokenBucketLimiter) Close() error
func (*TokenBucketLimiter) Reset ¶
func (instance *TokenBucketLimiter) Reset(key string)
Click to show internal directories.
Click to hide internal directories.