Ano ang mga rate limit?

Huling na-update: 3 buwan ang nakalipas

Sa kasalukuyan, hindi namin ipinapatupad ang mahigpit na mga limitasyon na requests kada segundo. Gayunman, inaasahan ang patas na paggamit upang mapanatili ang kalidad ng serbisyo para sa lahat.

Kasalukuyang pamamaraan

Sa halip na matitigas na limitasyon, hinihikayat namin ang responsableng paggamit:

  • I-space nang makatwiran ang iyong mga request

  • Magpatupad ng exponential backoff kapag may mga error

  • I-cache ang mga tugon upang maiwasan ang paulit-ulit na tawag

  • Makipag-ugnayan sa amin kung inaasahan mong mataas ang volume ng trapiko

Mga pinakamahuhusay na gawain

I-cache nang masinsinan:

  • I-save ang mga resulta ng paghahanap para sa mga karaniwang query

  • I-keep nang lokal ang media metadata pagkatapos ma-retrieve

  • Huwag tumawag /confirm ng maraming beses para sa parehong user/resource

I-batch ang iyong mga operasyon:

  • Pangkatin ang mga kaugnay na request

  • Magdagdag ng maliliit na pagkaantala sa pagitan ng mga batch

  • Limitahan ang sabayang koneksyon (10-20 ay makatwiran)

Mahusay na pangasiwaan ang mga error:

  • Magpatupad ng retry logic na may exponential backoff

  • Huwag agad mag-retry kapag nabigo

  • I-log ang mga error para sa pagsubaybay

Mga inaasahang oras ng tugon

  • /resources search: Karaniwang 200-500ms

  • /resource details: Mas mababa sa 100ms

  • /confirm licensing: 300-800ms

Itakda ang timeout ng iyong client sa hindi bababa sa 30 segundo upang mahawakan ang paminsan-minsang mas mabagal na tugon.

Kung maaabot mo ang mga limitasyon

Makakatanggap ka ng 429 Too Many Requests na error. Kapag nangyari ito:

// Implement exponential backoff
async function fetchWithRetry(url, options, maxRetries = 3) {
  for (let i = 0; i < maxRetries; i++) {
    try {
      const response = await fetch(url, options);
      
      if (response.status === 429) {
        const waitTime = Math.pow(2, i) * 1000; // 1s, 2s, 4s
        await new Promise(resolve => setTimeout(resolve, waitTime));
        continue;
      }
      
      return response;
    } catch (error) {
      if (i === maxRetries - 1) throw error;
    }
  }
}

Subaybayan ang iyong paggamit

I-track ang aktibidad ng API sa Settings → API:

  • Tingnan ang kabuuang bilang ng mga request na ginawa

  • Suriin ang mga aktibong lisensya

  • I-review ang mga trend ng paggamit

  • Mag-monitor para sa mga hindi pangkaraniwang pattern

Kailangan mo ba ng mas mataas na limitasyon?

Kung ang iyong lehitimong sitwasyon ng paggamit ay nangangailangan ng mataas na volume ng request (>1M requests/month), makipag-ugnayan sa aming team upang pag-usapan:

  • Ang iyong application at mga pattern ng trapiko

  • Inaasahang volume ng request

  • Mga garantisadong rate limit kung kinakailangan

Nakatulong ba ang artikulong ito?