Kereskorlatok
Ertse meg a FreeFileTools API kereskorlatait es hogyan kezelje oket az alkalmazasaban.
Ingyenes szint korlatok
| Korlat | Ertek |
|---|---|
| Keresek orankent | 50 |
| Max fajlmeret keresnkent | 25 MB |
| Kereskorlat ablak | Rolling 1 hour |
A kereskorlat API Key-enkent ervenyes. Minden kulcs sajat fuggetlen szamlaloval rendelkezik, amely gordulo orandalpon alapul.
Amikor a kereskorlatok tullepesre kerulnek
Amikor tullepi a kerskorlatot, az API 429 Too Many Requests valaszt ad:
{
"error": "Rate limit exceeded",
"message": "You have exceeded the rate limit of 50 requests per hour. Please try again later.",
"retryAfter": 1742
}A retryAfter mezo jelzi a masodpercek szamat, amelyet varni kell a kovetkezo keres elott.
Kereskorlat valaszfejlecek
Minden API-valasz tartalmaz fejleceket, amelyek segitenek nyomon kovetni a kereskorlat hasznalatot:
| Fejlec | Leiras |
|---|---|
X-RateLimit-Limit | Maximalis megengedett keresek szama orankent (50) |
X-RateLimit-Remaining | Hatralevo keresek szama az aktualis ablakban |
Retry-After | Masodpercek varakozas az ujraprobalkozas elott (csak 429 valaszoknal) |
Pelda valaszfejlecekre
HTTP/1.1 200 OK
Content-Type: image/jpeg
X-RateLimit-Limit: 50
X-RateLimit-Remaining: 42Tippek a korlaton belul maradashoz
Ellenorizze a hatralevo kereseket
Figyelje a X-RateLimit-Remaining fejlecet, hogy megtudja, hany keres maradt.
Alkalmazzon exponencialis visszalepest
Amikor 429 valaszt kap, varjon es probaljon ujra novekvo kesleltetessel ahelyett, hogy bombazna az API-t.
Tarolja az eredmenyeket
Ha ugyanazokat a fajlokat dolgozza fel ismetelten, tarolja az eredmenyeket helyben, hogy elkertlje a felesleges API-hivasokat.
Kotegelt kuldjon okosan
Kotegeltt feldolgozasnal oszja el kereseit idoben ahelyett, hogy mindet egyszerre kuldene.
Pelda: Kereskorlatok kezelese JavaScriptben
async function apiCall(url, options, maxRetries = 3) {
for (let attempt = 0; attempt < maxRetries; attempt++) {
const response = await fetch(url, options);
if (response.status === 429) {
const retryAfter = parseInt(response.headers.get("Retry-After") || "60");
console.log(`Rate limited. Waiting ${retryAfter} seconds...`);
await new Promise((resolve) => setTimeout(resolve, retryAfter * 1000));
continue;
}
return response;
}
throw new Error("Max retries exceeded");
}