Share via


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 CustomwhenLimitExceeded 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 RateLimitingPlugindaha fazla bilgi edinin.