Simuler Rate-Limit réponses d’API
Rate-Limit en-têtes sont utilisés dans les réponses HTTP pour limiter le nombre de demandes qu’un client peut effectuer au cours d’une période donnée.
Le serveur envoie ces en-têtes en réponse à la demande d’un client pour indiquer le nombre de demandes autorisées et le nombre de demandes restant avant que la limite ne soit atteinte.
Le RateLimit-Limit
champ d’en-tête de réponse indique le quota de requête associé au client dans la fenêtre de temps actuelle. Si le client dépasse cette limite, il se peut qu’il ne soit pas pris en charge.
Prise en charge de la limite de débit personnalisée
Lorsque vous dépassez la limite de débit, certaines API utilisent des comportements personnalisés, tels que le renvoi d’un 403 Forbidden
code status avec un message d’erreur personnalisé. Dev Proxy vous permet de simuler ces comportements personnalisés à l’aide de la Custom
valeur de la whenLimitExceeded
propriété .
L’exemple suivant montre comment configurer RateLimitingPlugin dans le fichier devproxyrc pour simuler des limites de débit pour l’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"
}
}
contient customResponseFile
la réponse que le proxy retourne lorsque votre application a atteint la limite de débit.
{
"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"
}
}
Étapes suivantes
En savoir plus sur .RateLimitingPlugin