Rate-Limit API yanıtlarının benzetimini yapın
Rate-Limit ü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, bir istemcinin isteğine yanıt olarak bu üst bilgileri 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şkili istek kotasını gösterir. İstemci bu sınırı aşarsa, sunulmayabilir.
Özel hız sınırı desteği
Hız sınırını aştığınızda, bazı API'ler özel bir hata iletisiyle durum kodu döndürme 403 Forbidden
gibi özel davranışlar kullanır. Dev Proxy özelliği için değerini kullanarak bu özel davranışların benzetimini Custom
whenLimitExceeded
yapmanızı sağlar.
Aşağıdaki örnekte, GitHub API'si için hız sınırlarının benzetimini yapmak için devproxyrc dosyasında RateLimitingPlugin'i nasıl yapılandırabileceğiniz gösterilmektedir.
{
"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.
{
"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
hakkında RateLimitingPlugin
daha fazla bilgi edinin.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin