class
Orion::Middleware::RateLimiter
- Orion::Middleware::RateLimiter
- Reference
- Object
Overview
Rate limiting middleware Prevents abuse by limiting requests per time window
Usage: use Orion::Middleware::RateLimiter.new( requests: 100, period: 1.minute, strategy: :ip # or :session, :custom )
Custom identifier: use Orion::Middleware::RateLimiter.new(requests: 100, period: 1.minute) do |context| context.session[:user_id]? || context.request.remote_address.to_s end
Included Modules
- HTTP::Handler
Defined in:
orion/middleware/rate_limiter.crConstructors
- .new(requests : Int32, period : Time::Span, strategy : Symbol = :ip, identifier : IdentifierProc | Nil = nil)
- .new(requests : Int32, period : Time::Span, &block : IdentifierProc)
Instance Method Summary
- #call(context : HTTP::Server::Context)
- #identifier : IdentifierProc
- #identifier=(identifier : IdentifierProc)
- #period : Time::Span
- #period=(period : Time::Span)
- #requests : Int32
- #requests=(requests : Int32)
Constructor Detail
def self.new(requests : Int32, period : Time::Span, strategy : Symbol = :ip, identifier : IdentifierProc | Nil = nil)
#