Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Заголовки 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
.