Simulare risposte api Rate-Limit
Rate-Limit intestazioni vengono usate nelle risposte HTTP per limitare il numero di richieste che un client può effettuare entro un determinato periodo di tempo.
Il server invia queste intestazioni in risposta alla richiesta di un client per indicare il numero di richieste consentite e il numero di richieste che rimangono prima del raggiungimento del limite.
Il RateLimit-Limit
campo dell'intestazione della risposta indica la quota richiesta associata al client nella finestra temporale corrente. Se il client supera tale limite, potrebbe non essere servito.
Quando si supera il limite di velocità, alcune API usano comportamenti personalizzati, ad esempio la restituzione di un 403 Forbidden
codice di stato con un messaggio di errore personalizzato. Dev Proxy consente di simulare questi comportamenti personalizzati usando il Custom
valore per la whenLimitExceeded
proprietà .
L'esempio seguente illustra come configurare RateLimitingPlugin nel file devproxyrc per simulare i limiti di frequenza per 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"
}
}
customResponseFile
Contiene la risposta restituita dal proxy quando l'app ha raggiunto il limite di velocità.
{
"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"
}
}
Altre informazioni su RateLimitingPlugin
.
Feedback su Dev Proxy
Dev Proxy è un progetto di open source. Selezionare un collegamento per fornire feedback: