Ruka hadi maudhui makuu
Didit Yakusanya $7.5M Kujenga Miundombinu ya Utambulisho na Udanganyifu
Didit
Rudi kwenye blogu
Blogu · 6 Machi 2026

Kudhibiti Vikomo vya Viwango vya Upande wa Mteja kwa Muunganisho wa Didit API (SW)

Kuunganisha kwa ufanisi na API kunahitaji udhibiti thabiti wa viwango vya maombi ili kuzuia usumbufu wa huduma. Mwongozo huu unachunguza mikakati ya kutekeleza udhibiti wa viwango vya upande wa mteja katika.

Na DiditImesasishwa
client-side-rate-limiting-didit-api-javascript-typescript.png

Kupunguza Mwendo kwa Kufikiri ni MuhimuTekeleza upunguzaji mwendo wa upande wa mteja wakati X-RateLimit-Remaining inaposhuka chini ya 15% ili kuepuka makosa 429 na kuhakikisha upatikanaji endelevu wa huduma.

Exponential Backoff kwa 429sDaima tumia mkakati wa exponential backoff (mfano, 5s, 10s, 20s) unapojaribu tena maombi baada ya kupokea jibu la 429, ukizuia uvunjaji zaidi wa kikomo cha kiwango.

Tumia Vichwa vya DiditVichwa vya X-RateLimit-Limit, X-RateLimit-Remaining, na X-RateLimit-Reset vinavyotolewa na API ya Didit ni muhimu kwa udhibiti wa viwango vya upande wa mteja wenye nguvu na akili.

Didit Hurahisisha MuunganishoSDKs za Didit na mbinu ya kwanza ya msanidi programu hurahisisha utekelezaji wa mbinu bora za kuunganisha API, ikiwa ni pamoja na taratibu zilizojengwa ndani na mwongozo wa kushughulikia vikomo vya viwango kwa ufanisi.

Kuelewa Vikomo vya Viwango vya API na Umuhimu Wake

Vikomo vya viwango vya API ni kipengele muhimu cha huduma za kisasa za wavuti, vilivyoundwa kulinda miundombinu kutokana na matumizi mabaya, kuhakikisha matumizi ya haki, na kudumisha utulivu kwa watumiaji wote. Kwa wasanidi programu wanaounganisha na huduma muhimu kama vile majukwaa ya uthibitishaji wa utambulisho, kuelewa na kuheshimu vikomo hivi ni muhimu sana. Unapounganisha na API ya Didit, utakutana na vikomo maalum vya viwango vilivyoundwa kuhakikisha shughuli za uthibitishaji wa utambulisho zinazotegemewa na za utendaji wa juu.

Didit inatekeleza tabaka nyingi za vikomo vya viwango, ikiwa ni pamoja na vikomo vya jumla vya GET (maombi 300 kwa dakika kwa kila programu) na sehemu za mwisho za Andika/Futa (maombi 300 kwa dakika kwa kila programu), pamoja na vikomo vikali zaidi vya sehemu maalum za mwisho kwa shughuli zenye athari kubwa. Kwa mfano, POST /v2/session/ (kwa kuunda mtiririko wa uthibitishaji) ina kikomo cha 600 rpm, wakati `GET /v2/session//decision/ (kwa kupata maamuzi ya kipindi) na GET /session//generate-pdf/` zimefikiwa kikomo cha 100 rpm kutokana na ukali wao wa kihesabu.

Kuzidi vikomo hivi husababisha nambari ya hali ya HTTP 429 (Maombi Mengi Sana). Ingawa hii ni ulinzi wa upande wa seva, udhibiti wa viwango vya upande wa mteja ni muhimu ili kuzuia programu yako isigonge dari hizi, kuhakikisha uzoefu laini wa mtumiaji na huduma isiyoingiliwa. Kushindwa kutekeleza utunzaji sahihi wa upande wa mteja kunaweza kusababisha utendaji uliodorora, uthibitishaji ulioshindwa, na hisia mbaya kwa watumiaji wako.

Mikakati ya Udhibiti wa Viwango vya Upande wa Mteja katika JavaScript/TypeScript

Kutekeleza udhibiti wa viwango vya upande wa mteja kunahusisha kutarajia na kujibu vikomo vya API kabla havijatekelezwa na seva. Hii inahitaji mchanganyiko wa upunguzaji mwendo kwa kufikiri na utunzaji wa makosa unaojibu. Hapa kuna mikakati muhimu:

1. Kupunguza Mwendo kwa Kufikiri na Vichwa vya Kikomo cha Kiwango

API ya Didit inajumuisha vichwa maalum katika majibu 429 ambavyo ni muhimu kwa udhibiti wa viwango vya upande wa mteja: X-RateLimit-Limit, X-RateLimit-Remaining, na X-RateLimit-Reset (katika sekunde za epoch). Unapaswa kuchambua vichwa hivi na kuvitumia kuarifu tabia ya ombi la mteja wako.

Mteja thabiti atafanya yafuatayo:

  • Fuatilia X-RateLimit-Remaining: Fuatilia kikamilifu maombi yaliyobaki. Wakati thamani hii inaposhuka chini ya kizingiti fulani (mfano, 15% ya X-RateLimit-Limit), mteja wako anapaswa kuanza kupanga maombi au kupunguza kasi ya usambazaji wake.
  • Tumia X-RateLimit-Reset: Kichwa hiki kinakuambia ni lini dirisha la kikomo cha kiwango cha sasa litawekwa upya. Unaweza kutumia muhuri huu wa muda kupanga wakati mteja wako anaweza kuanza tena maombi ya kasi kamili kwa usalama.

interface RateLimitHeaders {
  limit: number;
  remaining: number;
  reset: number; // epoch seconds
}

async function makeDiditRequest(url: string, options: RequestInit): Promise<Response> {
  // Katika programu halisi, ungesimamia hizi kwa ujumla au kwa kila sehemu ya mwisho
  let currentRateLimit: RateLimitHeaders | null = null;

  // Tekeleza foleni ya ndani au utaratibu wa kuchelewa kulingana na currentRateLimit
  // Kwa unyenyekevu, mfano huu unalenga utunzaji wa majibu.

  const response = await fetch(url, options);

  const limit = response.headers.get('X-RateLimit-Limit');
  const remaining = response.headers.get('X-RateLimit-Remaining');
  const reset = response.headers.get('X-RateLimit-Reset');

  if (limit && remaining && reset) {
    currentRateLimit = {
      limit: parseInt(limit, 10),
      remaining: parseInt(remaining, 10),
      reset: parseInt(reset, 10),
    };
    console.log(`Rate Limit: ${currentRateLimit.remaining}/${currentRateLimit.limit} requests remaining. Resets at ${new Date(currentRateLimit.reset * 1000).toLocaleTimeString()}.`);
  }

  return response;
}

2. Kutekeleza Exponential Backoff kwa Majibu 429

Wakati mteja wako anapokea jibu la 429, njia sahihi si kujaribu tena mara moja. Badala yake, tekeleza mkakati wa exponential backoff. Hii inahusisha kusubiri kwa vipindi virefu zaidi kati ya majaribio tena, kupunguza mzigo kwenye seva na kuongeza nafasi ya mafanikio katika majaribio yanayofuata. Majibu 429 ya Didit pia yanajumuisha kichwa cha Retry-After, ambacho hutoa muda maalum (kwa sekunde) wa kusubiri kabla ya kujaribu tena. Daima weka kipaumbele kichwa hiki ikiwa kipo.


async function makeDiditRequestWithRetry(url: string, options: RequestInit, retries = 0): Promise<Response> {
  try {
    const response = await makeDiditRequest(url, options);

    if (response.status === 429) {
      const retryAfter = response.headers.get('Retry-After');
      const delay = retryAfter ? parseInt(retryAfter, 10) * 1000 : Math.pow(2, retries) * 1000; // Exponential backoff: 1s, 2s, 4s...
      console.warn(`Rate limit hit. Retrying in ${delay / 1000} seconds...`);
      await new Promise(resolve => setTimeout(resolve, delay));
      return makeDiditRequestWithRetry(url, options, retries + 1);
    }

    if (!response.ok) {
      throw new Error(`HTTP error! status: ${response.status}`);
    }

    return response;
  } catch (error) {
    console.error('Request failed:', error);
    throw error;
  }
}

// Mfano wa matumizi kwa upatikanaji wa uamuzi wa kipindi cha Didit
// Sehemu hii ya mwisho imepunguzwa hadi 100 rpm.
// makeDiditRequestWithRetry(`/v2/session/${sessionId}/decision/`, { method: 'GET' });

3. Kutumia SDKs za Didit kwa Muunganisho Uliorahisishwa

Didit inatoa SDKs imara kwa mazingira mbalimbali, ikiwa ni pamoja na SDK ya JavaScript kwa programu za wavuti. SDK hizi mara nyingi huondoa utata mwingi wa mwingiliano wa API, ikiwa ni pamoja na kushughulikia mifumo ya makosa ya kawaida na kutoa simu za kurudi nyuma zinazoendeshwa na matukio kwa mtiririko wa uthibitishaji. Ingawa mantiki ya wazi ya udhibiti wa viwango bado inaweza kuwa muhimu kwa simu za API za kiwango cha juu, za kawaida, kutumia SDKs kwa mtiririko wa uthibitishaji unaoelekezwa kwa watumiaji (kama vile Uthibitishaji wa Kitambulisho, Liveness Passiva & Amilifu, au Ukadiriaji wa Umri) hurahisisha sana muunganisho.

SDKs zimeundwa kwa mtiririko wa kazi unaoelekezwa kwa watumiaji, ambapo backend yako huanzisha kipindi (POST /v2/session/) na frontend yako huonyesha UI ya uthibitishaji. SDK hushughulikia mwingiliano na huduma za Didit, kupunguza mzigo wa moja kwa moja wa kusimamia vikomo vya viwango vya simu za API za kibinafsi kutoka upande wa mteja wakati wa mchakato wa uthibitishaji yenyewe. Unapounganisha na SDK ya JavaScript, unaianzisha na tokeni ya kipindi kutoka kwa backend yako, na inasimamia mtiririko, ikitoa simu za kurudi nyuma za onSuccess, onError, na onCancel.

Jinsi Didit Inavyosaidia

Didit imeundwa kuwa jukwaa la utambulisho la kwanza la msanidi programu, la AI-native ambalo hutoa chaguzi rahisi za muunganisho huku ikidumisha utendaji thabiti. Mbinu yetu ya muundo wa API na SDKs inasaidia kwa asili katika kusimamia vikomo vya viwango na kuhakikisha shughuli laini:

  • Nyaraka za Kikomo cha Kiwango Zilizo Wazi: Didit hutoa nyaraka za uwazi na za kina kuhusu vikomo vyote vya viwango vya API, kuruhusu wasanidi programu kupanga muunganisho wao kwa ufanisi.
  • Vichwa Vyenye Taarifa: Kujumuishwa kwa X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, na Retry-After huwapa wasanidi programu uwezo wa kujenga programu za mteja zenye akili, zinazojidhibiti.
  • Usanifu wa Moduli: Muundo wa moduli wa Didit unamaanisha unaunganisha tu primitives za utambulisho unazohitaji, kama vile Uthibitishaji wa Kitambulisho kwa ukaguzi wa hati, Liveness Passiva & Amilifu kwa kugundua ulaghai, au Ukadiriaji wa Umri kwa uthibitishaji wa umri. Mbinu hii inayolenga inaweza kusaidia kuboresha mifumo yako ya simu za API.
  • SDKs kwa Mtiririko wa Kazi Uliorahisishwa: SDKs zetu za wavuti na simu hurahisisha muunganisho wa michakato tata ya uthibitishaji inayoelekezwa kwa watumiaji. Kwa kushughulikia ugumu wa mtiririko wa uthibitishaji, ikiwa ni pamoja na simu nyingi za API za msingi, SDKs huondoa wasiwasi wa moja kwa moja wa kikomo cha kiwango kwa mwingiliano huo maalum, hukuruhusu kuzingatia mantiki ya programu yako.
  • KYC ya Msingi ya Bure: Didit inatoa KYC ya Msingi ya Bure, ikiwezesha biashara kuanza na huduma muhimu za uthibitishaji wa utambulisho bila gharama za awali, na kuifanya iwe rahisi kujaribu na kuboresha mikakati yako ya muunganisho, ikiwa ni pamoja na utunzaji wa kikomo cha kiwango.

Uko Tayari Kuanza?

Uko tayari kuona Didit ikifanya kazi? Pata demo ya bure leo.

Anza kuthibitisha vitambulisho bila malipo na kiwango cha bure cha Didit.

Miundombinu ya utambulisho na udanganyifu.

API moja kwa KYC, KYB, Ufuatiliaji wa Miamala, na Uchunguzi wa Wallet. Unganisha ndani ya dakika 5.

Uliza AI ifupishe ukurasa huu
Udhibiti wa Viwango vya Upande wa Mteja kwa Didit API.