https://github.com/sc5/angular-rate-limiter
HTTP rate limit module for AngularJS
https://github.com/sc5/angular-rate-limiter
Last synced: 11 months ago
JSON representation
HTTP rate limit module for AngularJS
- Host: GitHub
- URL: https://github.com/sc5/angular-rate-limiter
- Owner: SC5
- License: mit
- Created: 2016-11-16T11:58:32.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2016-11-16T12:07:09.000Z (over 9 years ago)
- Last Synced: 2025-06-16T19:53:16.956Z (about 1 year ago)
- Language: JavaScript
- Size: 11.7 KB
- Stars: 2
- Watchers: 5
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# angular-rate-limiter
Simple rate limiting service for the Angular $http requests. It uses token bucket for limiting request interval to the server.
You can configure multiple token buckets with different rules to match an HTTP request.
## Usage
Basic usage in your application:
```js
angular.module('myApp', ['angularRateLimiter'])
.config(function(AngularRateLimiterProvider) {
// 10 request per second for requests to servers
AngularRateLimiterProvider.addRateLimiter({
bucketSize: 10, // Maximum number of tokens bucket can hold
tokensPerInterval: 1, // Add 1 token per interval
tokenInterval: 100 // Add tokens every 100ms
});
// Enable limiters
AngularRateLimiterProvider.enableLimiters();
});
```
Use rate limiting to specific URL:
```js
angular.module('myApp', ['angularRateLimiter'])
.config(function(AngularRateLimiterProvider) {
// 10 request per second for requests to servers.
AngularRateLimiterProvider.addRateLimiter({
match: 'api.mydomain.com', // Only use limiting on request which URL contain 'api.mydomain.com'
bucketSize: 10, // Maximum number of tokens bucket can hold
tokensPerInterval: 10, // Add 10 token per interval
tokenInterval: 1000, // Add tokens every 1s
retryDelay: -1 // Do not retry request when HTTP code 429 is received
});
// Enable limiters
AngularRateLimiterProvider.enableLimiters();
});
```