Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bir bakışta
Hedef: Herhangi bir API'de hız sınırlama davranışını simüle etme
Süre: 10 dakika
Eklentiler:RateLimitingPlugin
Önkoşullar:Geliştirme Ara Sunucusunu Ayarlama
Hız Sınırı üst bilgileri, bir istemcinin belirli bir süre içinde gerçekleştirebileceği istek sayısını sınırlamak için HTTP yanıtlarında kullanılır.
Sunucu, bu üst bilgileri istemcinin isteğine yanıt olarak göndererek kaç isteğe izin verilip sınıra ulaşılana kadar kaç istek kaldığını belirtir.
Yanıt RateLimit-Limit üst bilgisi alanı, geçerli zaman penceresinde istemciyle ilişkilendirilmiş istek kotasını gösterir. İstemci bu sınırı aşarsa hizmet verilmeyebilir.
Özel hız sınırı desteği
Hız sınırını aştığınızda, bazı API'ler özel bir hata mesajı içeren bir durum kodu 403 Forbidden döndürmek gibi özel davranışlar sergileyebilir. Dev Proxy, Custom özelliği için whenLimitExceeded değerini kullanarak bu özel davranışların benzetimini yapmanızı sağlar.
Aşağıdaki örnekte, GitHub API'si için hız sınırlarını simüle etmek için devproxyrc dosyasında RateLimitingPlugin'i nasıl yapılandırabileceğiniz gösterilmektedir.
Dosya: devproxyrc.json (rateLimiting yapılandırma bölümü)
{
"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 uygulamanız hız sınırına ulaştığında proxy'nin döndürdüğü yanıtı içerir.
Dosya: github-rate-limit-exceeded.json
{
"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"
}
}
Sonraki adımlar
RateLimitingPlugin hakkında daha fazla bilgi edinin.
Ayrıca bakınız
- RateLimitingPlugin - Tam doküman
- Hız sınırlama nedir - Kavramlar
- Hız sınırlamayı işleme - En iyi yöntemler
- Sözlük - Geliştirme Ara Sunucusu terminolojisi