Symulowanie odpowiedzi interfejsu API limitu szybkości
Nagłówki rate-limit są używane w odpowiedziach HTTP, aby ograniczyć liczbę żądań, które klient może wykonać w danym okresie.
Serwer wysyła te nagłówki w odpowiedzi na żądanie klienta, aby wskazać, ile żądań jest dozwolonych i ile żądań pozostaje przed osiągnięciem limitu.
Pole nagłówka RateLimit-Limit
odpowiedzi wskazuje limit przydziału żądania skojarzony z klientem w bieżącym przedziale czasu. Jeśli klient przekroczy ten limit, może nie być obsługiwany.
Obsługa niestandardowych limitów szybkości
Po przekroczeniu limitu szybkości niektóre interfejsy API używają niestandardowych zachowań, takich jak zwracanie 403 Forbidden
kodu stanu z niestandardowym komunikatem o błędzie. Serwer proxy deweloperów umożliwia symulowanie tych zachowań niestandardowych przy użyciu Custom
wartości właściwości whenLimitExceeded
.
Poniższy przykład pokazuje, jak skonfigurować sposób konfigurowania parametru RateLimitingPlugin w pliku devproxyrc w celu symulowania limitów szybkości dla interfejsu API usługi GitHub.
{
"rateLimiting": {
"headerLimit": "X-RateLimit-Limit",
"headerRemaining": "X-RateLimit-Remaining",
"headerReset": "X-RateLimit-Reset",
"costPerRequest": 1,
"resetTimeWindowSeconds": 3600,
"warningThresholdPercent": 0,
"rateLimit": 60,
"resetFormat": "UtcEpochSeconds",
"whenLimitExceeded": "Custom",
"customResponseFile": "github-rate-limit-exceeded.json"
}
}
Zawiera customResponseFile
odpowiedź zwracaną przez serwer proxy, gdy aplikacja osiągnęła limit szybkości.
{
"statusCode": 403,
"headers": [
{
"name": "Content-Type",
"value": "application/json; charset=utf-8"
}
],
"body": {
"message": "You have exceeded a secondary rate limit and have been temporarily blocked from content creation. Please retry your request again later.",
"documentation_url": "https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits"
}
}
Następne kroki
Dowiedz się więcej o pliku RateLimitingPlugin
.