속도 제한 API 응답 시뮬레이션
속도 제한 헤더는 지정된 기간 내에 클라이언트가 수행할 수 있는 요청 수를 제한하기 위해 HTTP 응답에 사용됩니다.
서버는 클라이언트의 요청에 대한 응답으로 이러한 헤더를 전송하여 허용되는 요청 수와 제한에 도달하기 전에 남아 있는 요청 수를 나타냅니다.
RateLimit-Limit
응답 헤더 필드는 현재 시간 창에서 클라이언트와 연결된 요청 할당량을 나타냅니다. 클라이언트가 해당 제한을 초과하면 클라이언트가 제공되지 않을 수 있습니다.
사용자 지정 속도 제한 지원
속도 제한을 초과하면 일부 API는 사용자 지정 오류 메시지와 함께 상태 코드 반환 403 Forbidden
과 같은 사용자 지정 동작을 사용합니다. 개발자 프록시를 사용하면 속성 값을 whenLimitExceeded
사용하여 이러한 사용자 지정 동작을 Custom
시뮬레이션할 수 있습니다.
다음 예제에서는 Devproxyrc 파일에서 RateLimitingPlugin을 구성하여 GitHub API에 대한 속도 제한을 시뮬레이션하는 방법을 구성합니다.
{
"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
에 대해 자세히 알아보세요.
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
Dev Proxy