RateLimiterMiddleware

io.github.edadma.apion.RateLimiterMiddleware

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Members list

Type members

Classlikes

Attributes

Supertypes
class Object
trait Matchable
class Any
object IpSource extends Enumeration

Attributes

Supertypes
class Enumeration
trait Serializable
class Object
trait Matchable
class Any
Self type
IpSource.type
case class Options(limit: RateLimit, store: RateLimitStore, ipSources: Seq[Value], keyGenerator: Request => Future[String], skip: Request => Boolean, onRateLimited: (Request, RateLimitError, Options) => Future[Response])

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
case class RateLimit(maxRequests: Int, window: Duration, burst: Int, skipFailedRequests: Boolean, skipSuccessfulRequests: Boolean, statusCode: Int, errorMessage: String, headers: Boolean)

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
case class RateLimitError(error: String, retryAfter: Long, limit: Int, remaining: Int, reset: Long)

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes

Value members

Concrete methods

def apply(): Handler
def apply(options: Options): Handler
def flexible(maxRequests: Int, window: Duration): Handler
def moderate(maxRequests: Int, window: Duration): Handler
def strict(maxRequests: Int, window: Duration): Handler