Class RateLimiter
- java.lang.Object
-
- com.networknt.aws.lambda.handler.middleware.limit.RateLimiter
-
public class RateLimiter extends Object
Rate limit logic for native lambda. The config will define in the limit.yml config file. By default, Rate limit will handle on the server(service) level. But framework support client and address level limitation- Author:
- Gavin Chen
-
-
Field Summary
Fields Modifier and Type Field Description protected com.networknt.limit.LimitConfigconfig
-
Constructor Summary
Constructors Constructor Description RateLimiter(com.networknt.limit.LimitConfig config)Load config and initial model by Rate limit key.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description com.networknt.limit.RateLimitResponsehandleRequest(LightLambdaExchange exchange, com.networknt.limit.LimitKey limitKey)com.networknt.limit.RateLimitResponseisAllowByServer(String path)Handle logic for Server type (key = server) rate limitprotected com.networknt.limit.RateLimitResponseisAllowDirect(String directKey, String path, String type)Handle logic for direct rate limit setting for address, client and user.
-
-
-
Method Detail
-
handleRequest
public com.networknt.limit.RateLimitResponse handleRequest(LightLambdaExchange exchange, com.networknt.limit.LimitKey limitKey)
-
isAllowDirect
protected com.networknt.limit.RateLimitResponse isAllowDirect(String directKey, String path, String type)
Handle logic for direct rate limit setting for address, client and user. Use the type for differential the address/client/user- Parameters:
directKey- direct keypath- Stringtype- String- Returns:
- RateLimitResponse response
-
isAllowByServer
public com.networknt.limit.RateLimitResponse isAllowByServer(String path)
Handle logic for Server type (key = server) rate limit- Parameters:
path- String- Returns:
- RateLimitResponse rate limit response
-
-