Update rate limiting headers and adjust time unit for limits

Added `Access-Control-Expose-Headers` to rate limit responses to expose retry-related headers for easier accessibility on the client side. Changed the rate limit time unit in `HistoryApiController` from seconds to minutes for more reasonable throttling.
This commit is contained in:
Teriuihi 2025-04-18 19:32:34 +02:00
parent 21f2b3e4a5
commit 905373093c
2 changed files with 3 additions and 1 deletions

View File

@ -15,10 +15,11 @@ import org.springframework.web.bind.annotation.RestController;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit;
@Slf4j @Slf4j
@RestController @RestController
@RateLimit(limit = 30, timeValue = 1, timeUnit = java.util.concurrent.TimeUnit.SECONDS) @RateLimit(limit = 30, timeValue = 1, timeUnit = TimeUnit.MINUTES)
public class HistoryApiController implements HistoryApi { public class HistoryApiController implements HistoryApi {
@Override @Override

View File

@ -76,6 +76,7 @@ public class RateLimitAspect {
.header("X-Rate-Limit-Limit", String.valueOf(limit)) .header("X-Rate-Limit-Limit", String.valueOf(limit))
.header("X-Rate-Limit-Remaining", "0") .header("X-Rate-Limit-Remaining", "0")
.header("Retry-After", String.valueOf(nextResetTime.getSeconds())) .header("Retry-After", String.valueOf(nextResetTime.getSeconds()))
.header("Access-Control-Expose-Headers", "Retry-After, X-Rate-Limit-Limit, X-Rate-Limit-Remaining")
.body(String.format("Rate limit exceeded. Try again in %d seconds.", nextResetTime.getSeconds())); .body(String.format("Rate limit exceeded. Try again in %d seconds.", nextResetTime.getSeconds()));
} }
} }