Documentation ¶
Overview ¶
Package gin - Gin Route (Endpoint) 처리 구간에 Rate Limit 기능을 제공하는 Gin Router 패키지
Index ¶
- func HandlerFactory(next ginRouter.HandlerFactory, logger logging.Logger) ginRouter.HandlerFactory
- func IPTokenExtractor(c *gin.Context) string
- type RateLimitMiddleware
- func NewEndpointRateLimiter(tb ratelimit.RateLimiter) RateLimitMiddleware
- func NewHeaderLimiter(header string, maxRate int, fillInterval int, fillCount int) RateLimitMiddleware
- func NewIPLimiter(maxRate int, fillInterval int, fillCount int) RateLimitMiddleware
- func NewTokenLimiter(te TokenExtractor, ls ratelimit.LimiterStore) RateLimitMiddleware
- type TokenExtractor
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func HandlerFactory ¶
func HandlerFactory(next ginRouter.HandlerFactory, logger logging.Logger) ginRouter.HandlerFactory
HandlerFactory - RateLimit 기능을 수행하는 Handler Factory 구성
func IPTokenExtractor ¶
IPTokenExtractor - Request에서 IP 정보 추출
Types ¶
type RateLimitMiddleware ¶
type RateLimitMiddleware func(gin.HandlerFunc) gin.HandlerFunc
RateLimitMiddleware - Rate limit 처리가 적용된 Handler Func 반환 형식
func NewEndpointRateLimiter ¶
func NewEndpointRateLimiter(tb ratelimit.RateLimiter) RateLimitMiddleware
NewEndpointRateLimiter - Rate Limit 처리를 포함하는 Handler Func 생성 (By Call 단위 검증)
func NewHeaderLimiter ¶
func NewHeaderLimiter(header string, maxRate int, fillInterval int, fillCount int) RateLimitMiddleware
NewHeaderLimiter - Rate Limit 기능을 Header 기준으로 처리하는 Handler Func 생성 (By Client Header 단위 검증)
func NewIPLimiter ¶
func NewIPLimiter(maxRate int, fillInterval int, fillCount int) RateLimitMiddleware
NewIPLimiter - Rate Limit 기능을 IP 기준으로 처리하는 Handler Func 생성 (By Client IP 단위 검증)
func NewTokenLimiter ¶
func NewTokenLimiter(te TokenExtractor, ls ratelimit.LimiterStore) RateLimitMiddleware
NewTokenLimiter - 지정된 Token Extractor와 Limiter Store를 기반으로 Token Bucket 기준 Rate limit 처리를 수행하는 Middleware 생성
type TokenExtractor ¶
TokenExtractor - 각 요청에서 Token 정보를 추출하는 함수 형식
func HeaderTokenExtractor ¶
func HeaderTokenExtractor(header string) TokenExtractor
HeaderTokenExtractor - Request에서 Header 정보 추출