API rate limiter in .NET Core 8

.NET Core 8 have built-in API rate limiter functionality.
Can be used in an API project like this in program.cs:

app.UseRateLimiter();

//(PUT BELOW CODE AFTER LINE: var app = builder.Build();)
//Setup API request rate limiter
//If a rate limit is exceeded in ASP.NET Core's Rate Limiting Middleware 
//HTTP response will have the status code: 429 Too Many Requests
builder.Services.AddRateLimiter(options =>
{
    options.AddFixedWindowLimiter(
        "default",
        limiterOptions =>
        {
            limiterOptions.PermitLimit = 10; // Allow 10 requests
            limiterOptions.Window = TimeSpan.FromSeconds(1); // Per second
            limiterOptions.QueueProcessingOrder = QueueProcessingOrder.OldestFirst;
            limiterOptions.QueueLimit = 2; // Allow 2 queued requests
        }
    );
});

 

Leave a Reply

Your email address will not be published. Required fields are marked *