Class RateLimiter
java.lang.Object
com.networknt.aws.lambda.handler.middleware.limit.RateLimiter
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 -
Constructor Summary
ConstructorsConstructorDescriptionRateLimiter(com.networknt.limit.LimitConfig config) Load config and initial model by Rate limit key. -
Method Summary
Modifier and TypeMethodDescriptioncom.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.
-
Field Details
-
config
protected com.networknt.limit.LimitConfig config
-
-
Constructor Details
-
RateLimiter
Load config and initial model by Rate limit key.- Parameters:
config- LimitConfig object- Throws:
Exception- runtime exception
-
-
Method Details
-
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
Handle logic for Server type (key = server) rate limit- Parameters:
path- String- Returns:
- RateLimitResponse rate limit response
-