Имитация ответов API с ограничением скорости
Заголовки rate-Limit используются в HTTP-ответах, чтобы ограничить количество запросов, которые клиент может сделать в течение заданного периода времени.
Сервер отправляет эти заголовки в ответ на запрос клиента, чтобы указать, сколько запросов разрешено и сколько запросов осталось до достижения ограничения.
Поле RateLimit-Limit
заголовка ответа указывает квоту запроса, связанную с клиентом в текущем окне времени. Если клиент превышает это ограничение, он может не обслуживаться.
Поддержка ограничения пользовательской скорости
При превышении предела скорости некоторые API используют пользовательские поведения, например возврат 403 Forbidden
кода состояния с пользовательским сообщением об ошибке. Прокси-сервер разработки позволяет имитировать эти пользовательские действия с помощью Custom
значения для whenLimitExceeded
свойства.
В следующем примере показано, как настроить способ настройки RateLimitingPlugin в файле devproxyrc для имитации ограничений скорости для API 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"
}
}
Содержит customResponseFile
ответ, который прокси-сервер возвращает, когда приложение достигло предела скорости.
{
"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"
}
}
Следующие шаги
Дополнительные сведения о RateLimitingPlugin
.