Dieses Snippet beantwortet die häufige Frage „Wie verhindere ich zu viele Requests auf meine .NET API?“.
Es zeigt, wie man Requests pro Client serverseitig begrenzt – direkt in .NET 8 Minimal APIs, ohne Reverse Proxy oder API-Gateway.
Was passiert nach Überschreiten des Limits?
Sobald ein Client mehr als 5 Requests innerhalb von 10 Sekunden sendet, werden weitere Anfragen sofort abgelehnt.
Die API antwortet automatisch mit HTTP 429 (Too Many Requests). Da QueueLimit = 0 gesetzt ist, werden Anfragen nicht gepuffert, sondern konsequent verworfen – ideal für klare Schutzmechanismen und vorhersagbares Verhalten.
using Microsoft.AspNetCore.RateLimiting;
using System.Threading.RateLimiting;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddRateLimiter(options =>
{
options.AddFixedWindowLimiter("per-client", limiter =>
{
limiter.Window = TimeSpan.FromSeconds(10);
limiter.PermitLimit = 5;
limiter.QueueLimit = 0;
});
});
var app = builder.Build();
app.UseRateLimiter();
app.MapGet("/api/data", () => Results.Ok("Zugriff erlaubt"))
.RequireRateLimiting("per-client");
app.Run();
2 Kommentare zum Snippet