Api-antwoorden voor frequentielimiet simuleren
Rate-Limit-headers worden gebruikt in HTTP-antwoorden om het aantal aanvragen te beperken dat een client binnen een bepaalde periode kan maken.
De server verzendt deze headers als reactie op de aanvraag van een client om aan te geven hoeveel aanvragen zijn toegestaan en hoeveel aanvragen er blijven voordat de limiet wordt bereikt.
Het RateLimit-Limit
veld antwoordheader geeft het aanvraagquotum aan dat is gekoppeld aan de client in het huidige tijdvenster. Als de client deze limiet overschrijdt, wordt deze mogelijk niet geleverd.
Ondersteuning voor aangepaste frequentielimieten
Wanneer u de frequentielimiet overschrijdt, gebruiken sommige API's aangepast gedrag, zoals het retourneren van een 403 Forbidden
statuscode met een aangepast foutbericht. Met Dev Proxy kunt u dit aangepaste gedrag simuleren met behulp van de Custom
waarde voor de whenLimitExceeded
eigenschap.
In het volgende voorbeeld ziet u hoe u RateLimitingPlugin kunt configureren in het devproxyrc-bestand om frequentielimieten voor de GitHub-API te simuleren.
{
"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"
}
}
Het customResponseFile
bevat het antwoord dat de proxy retourneert wanneer uw app de frequentielimiet heeft bereikt.
{
"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"
}
}
Volgende stappen
Meer informatie over de RateLimitingPlugin
.