Megosztás a következőn keresztül:


Rate-Limit API-válaszok szimulálása

Rate-Limit fejlécek a HTTP-válaszokban arra szolgálnak, hogy korlátozzák az ügyfél által egy adott időtartamon belül megadható kérések számát.

A kiszolgáló az ügyfél kérésére válaszul elküldi ezeket a fejléceket, hogy jelezze, hány kérelem engedélyezett, és hány kérelem maradjon a korlát elérése előtt.

A RateLimit-Limit válasz fejlécmezője az ügyfélhez társított kéréskvótát jelzi az aktuális időablakban. Ha az ügyfél túllépi ezt a korlátot, előfordulhat, hogy nem lesz kiszolgálva.

Egyéni sebességkorlát támogatása

Ha túllépi a sebességkorlátot, egyes API-k egyéni viselkedést használnak, például egy 403 Forbidden egyéni hibaüzenettel rendelkező állapotkódot ad vissza. A Dev Proxy lehetővé teszi, hogy szimulálja ezeket az egyéni viselkedéseket a CustomwhenLimitExceeded tulajdonság értékének használatával.

Az alábbi példa bemutatja, hogyan konfigurálhatja a RateLimitingPlugin konfigurálását a devproxyrc fájlban a GitHub API sebességkorlátainak szimulálására.

{
  "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"
  }
}

A customResponseFile tartalmazza azt a választ, amelyet a proxy akkor ad vissza, amikor az alkalmazás elérte a sebességkorlátot.

{
  "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"
  }
}

Következő lépések

További információ a következőről RateLimitingPlugin: .