Welcome to your api-gateway-service workspace. Here's what you can do:
/help for available commandsCtrl+Space for autocomplete/optimize current rate limiting implementation
Here's an optimized rate limiting implementation using Redis and Express middleware:
const rateLimit = require('express-rate-limit');
const RedisStore = require('rate-limit-redis');
const redis = require('redis');
const client = redis.createClient({
host: process.env.REDIS_HOST,
port: process.env.REDIS_PORT
});
const limiter = rateLimit({
store: new RedisStore({
client: client,
expiry: 60 * 60 // 1 hour
}),
windowMs: 15 * 60 * 1000, // 15 minutes
max: 100, // limit each IP to 100 requests per windowMs
message: 'Too many requests from this IP, please try again later'
});
// Apply to all requests
app.use(limiter);