Laravel: Unterschiedliche API-Grenzwerte für unterschiedliche Pfade
Ich muss verschiedene Ratenlimits für verschiedene Pfade einrichten. Feind Beispiel:
Für Pfad / Benutzer möchte ich ein Ratenlimit von 60 Anfragen pro Minute haben, während ich für Pfad / Statistiken ein Ratenlimit von nur 5 Anfragen pro Minute haben möchte.
Ich habe es mit dem nächsten Ansatz versucht
Route::group(['middleware' => ['auth', 'throttle:60']], function(){
Route::get('users', 'User@list');
});
Route::group(['middleware' => ['auth', 'throttle:5']], function(){
Route::get('stats', 'User@stats');
});
Irgendwie wird das letzte Ratenlimit angewendet. Wenn Sie jedoch Anforderungen auf dem Benutzerpfad stellen, wird der X-Rate-Limit-Limit-Header auf 60 gesetzt, aber es wird der Fehler "Zu viele Anforderungen" ausgegeben, wenn die 6. Anforderung erreicht wird.
Möglicherweise möchten Sie versuchen, die Standardrate in Zeile 40 vonKernel.php
auskommentieren, da Sie sie in jeder Middleware-Gruppe angeben, um Konflikte zu vermeiden.
Möglicherweise möchten Sie auch die Middleware so ändern, dass sie den zweiten Parameter für die Wartezeit bis zur nächsten Anforderung enthält. (Z. B. throttle:60,1
)