Simulieren von API-Antworten für Die Rate-Limit-API
Rate-Limit-Header werden in HTTP-Antworten verwendet, um die Anzahl der Anforderungen zu begrenzen, die ein Client innerhalb eines bestimmten Zeitraums vornehmen kann.
Der Server sendet diese Header als Antwort auf die Anforderung eines Clients, um anzugeben, wie viele Anforderungen zulässig sind und wie viele Anforderungen verbleiben, bevor der Grenzwert erreicht wird.
Das RateLimit-Limit
Antwortheaderfeld gibt das Anforderungskontingent an, das dem Client im aktuellen Zeitfenster zugeordnet ist. Wenn der Client diesen Grenzwert überschreitet, wird er möglicherweise nicht bedient.
Unterstützung für benutzerdefinierte Ratenbeschränkungen
Wenn Sie den Satzgrenzwert überschreiten, verwenden einige APIs benutzerdefinierte Verhaltensweisen, z. B. das Zurückgeben eines 403 Forbidden
Statuscodes mit einer benutzerdefinierten Fehlermeldung. Dev Proxy ermöglicht Es Ihnen, diese benutzerdefinierten Verhaltensweisen mithilfe des Custom
Werts für die whenLimitExceeded
Eigenschaft zu simulieren.
Das folgende Beispiel zeigt, wie Sie konfigurieren können, wie Sie RateLimitingPlugin in der Devproxyrc-Datei konfigurieren können, um Ratelimits für die GitHub-API zu simulieren.
{
"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"
}
}
Die customResponseFile
Antwort enthält die Antwort, die der Proxy zurückgibt, wenn ihre App das Zinslimit erreicht hat.
{
"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"
}
}
Nächste Schritte
Weitere Informationen finden Sie unter RateLimitingPlugin
.