Lewati ke konten utama
Didit Raih $7,5 Juta untuk Membangun Infrastruktur Identitas dan Fraud
Didit
Kembali ke blog
Blog · 6 Maret 2026

Penanganan Error Tangguh untuk API Didit di Rust (ID)

Kuasai penanganan error tingkat lanjut untuk integrasi API Didit kelas produksi di Rust. Pelajari tipe error kustom, mekanisme coba lagi, manajemen batas laju, dan manfaat API Didit yang tangguh serta platform modularnya.

Oleh DiditDiperbarui
robust-error-handling-for-didit-api-in-rust.png

Tipe Error Kustom untuk KejelasanMengimplementasikan enum error kustom di Rust menyediakan kontrol terperinci dan pemetaan respons API Didit yang jelas, meningkatkan kemampuan debug dan pemeliharaan untuk alur kerja verifikasi identitas yang kompleks.

Strategi Coba Lagi dan Backoff CerdasIntegrasi API yang tangguh harus menggabungkan exponential backoff dan jitter untuk error sementara, mencegah kelebihan beban sistem dan memastikan ketersediaan tinggi saat berinteraksi dengan layanan eksternal seperti platform identitas Didit.

Manajemen Batas Laju ProaktifMengintegrasikan API Didit memerlukan perhatian cermat terhadap batas laju, memanfaatkan header respons (X-RateLimit-Remaining, X-RateLimit-Reset) untuk mengatur permintaan secara mandiri dan mengimplementasikan antrean dinamis, yang penting untuk operasi tanpa hambatan dalam skala besar.

Desain Didit yang Tangguh dan Berorientasi PengembangAPI Didit dibangun untuk keandalan, menawarkan header batas laju yang jelas, respons error yang dapat diprediksi, dan arsitektur modular yang menyederhanakan integrasi dan memungkinkan pengembang untuk fokus membangun sistem verifikasi identitas yang tangguh dan aman tanpa kerumitan tersembunyi.

Mengintegrasikan API eksternal ke dalam sistem produksi menuntut perhatian cermat terhadap penanganan error. Untuk operasi berisiko tinggi seperti verifikasi identitas, di mana keandalan dan keamanan adalah yang utama, strategi error yang tangguh bukan hanya praktik yang baik—tetapi juga penting. Posting blog ini membahas teknik penanganan error tingkat lanjut khusus untuk mengintegrasikan API verifikasi identitas Didit yang kuat ke dalam aplikasi Rust, memastikan sistem Anda tangguh, berkinerja, dan aman.

Membuat Tipe Error Kustom untuk Respons API Didit

Sistem tipe Rust yang kuat menjadikannya bahasa yang ideal untuk mendefinisikan tipe error yang tepat. Saat berintegrasi dengan Didit, Anda akan menemui berbagai skenario error, mulai dari masalah jaringan hingga kegagalan validasi khusus API. Daripada mengandalkan pesan error generik, membuat enum error kustom memungkinkan Anda mengkategorikan dan bereaksi terhadap masalah ini secara efektif.

Pertimbangkan enum yang menangkap potensi kegagalan saat memanggil API Didit, seperti membuat sesi verifikasi atau mengambil keputusan:

enum DiditError {
    NetworkError(reqwest::Error),
    ApiError { status: u16, message: String },
    RateLimitExceeded { retry_after_seconds: u64 },
    InvalidInput(String),
    SerializationError(serde_json::Error),
    // ... error spesifik lainnya
}

impl From<reqwest::Error> for DiditError {
    fn from(err: reqwest::Error) -> Self {
        DiditError::NetworkError(err)
    }
}

impl From<serde_json::Error> for DiditError {
    fn from(err: serde_json::Error) -> Self {
        DiditError::SerializationError(err)
    }
}

Pendekatan ini menyediakan propagasi error yang jelas dan memungkinkan logika aplikasi Anda untuk mencocokkan pola pada varian error tertentu, yang mengarah pada strategi pemulihan yang lebih terarah. Misalnya, error RateLimitExceeded akan memicu respons yang berbeda dari error InvalidInput, yang mungkin memerlukan intervensi pengguna. API Didit menyediakan pesan error terperinci dan kode status HTTP, sehingga mudah untuk memetakan ini ke dalam tipe error kustom Anda untuk layanan seperti Verifikasi ID Didit atau Penyaringan AML.

Mengimplementasikan Mekanisme Coba Lagi Cerdas dengan Exponential Backoff

Masalah jaringan sementara atau ketidaktersediaan layanan sementara tidak dapat dihindari saat berurusan dengan API eksternal. Integrasi yang tangguh harus mengimplementasikan logika coba lagi yang cerdas. Coba lagi yang sederhana dapat memperburuk masalah, jadi exponential backoff dengan jitter sangat penting.

Ketika API Didit mengembalikan error server 5xx, atau error 429 Too Many Requests (yang akan kita bahas selanjutnya), aplikasi Anda harus menunggu durasi yang meningkat sebelum mencoba lagi permintaan tersebut. Jitter (menambahkan sedikit penundaan acak) mencegah masalah "thundering herd" di mana beberapa klien mencoba lagi secara bersamaan, membanjiri layanan.

async fn call_didit_api_with_retry<F, Fut, T>(
    action: F,
    max_retries: u8,
) -> Result<T, DiditError>
where
    F: Fn() -> Fut,
    Fut: Future<Output = Result<T, DiditError>>,
{
    let mut retries = 0;
    loop {
        match action().await {
            Ok(val) => return Ok(val),
            Err(e @ DiditError::NetworkError(_)) | Err(e @ DiditError::ApiError { status: 500..=599, .. }) => {
                if retries < max_retries {
                    let delay = Duration::from_secs(2u64.pow(retries) + rand::thread_rng().gen_range(0..10));
                    tokio::time::sleep(delay).await;
                    retries += 1;
                } else {
                    return Err(e);
                }
            },
            Err(e) => return Err(e),
        }
    }
}

Pola ini memastikan bahwa aplikasi Anda tetap tangguh bahkan saat menghadapi hambatan sementara, meminimalkan gangguan layanan untuk fungsi-fungsi penting seperti Deteksi Kehidupan Didit atau Verifikasi NFC.

Manajemen Batas Laju Proaktif

Didit, seperti API yang dirancang dengan baik, mengimplementasikan pembatasan laju untuk memastikan stabilitas dan penggunaan yang adil. Mengabaikan batas ini dapat menyebabkan error 429 Too Many Requests dan berpotensi pemblokiran sementara. API Didit menyediakan header informatif untuk membantu Anda mengelola volume permintaan Anda:

  • X-RateLimit-Limit: Jumlah maksimum permintaan yang diizinkan dalam satu jendela.
  • X-RateLimit-Remaining: Jumlah permintaan yang tersisa di jendela saat ini.
  • X-RateLimit-Reset: Waktu (dalam detik epoch) ketika jendela batas laju diatur ulang.
  • Retry-After: Jika 429 dikembalikan, header ini menunjukkan berapa lama harus menunggu sebelum mencoba lagi.

Aplikasi Rust Anda harus memantau header ini, terutama X-RateLimit-Remaining. Ketika turun di bawah ambang batas tertentu (misalnya, 15% dari batas), Anda harus secara proaktif memperlambat atau mengantre permintaan. Jika 429 diterima, selalu hormati header Retry-After untuk durasi yang ditentukan sebelum membuat permintaan lebih lanjut.

Misalnya, saat membuat sesi melalui POST /v3/session/, Didit memiliki batas global 300 permintaan per menit per aplikasi untuk titik akhir tulis, dan batas khusus titik akhir seperti 600 rpm untuk session-v2-create. Manajemen proaktif mencegah gangguan layanan untuk proses verifikasi identitas penting, seperti memulai Estimasi Usia atau pemeriksaan Bukti Alamat.

Bagaimana Didit Membantu

Platform Didit dirancang dengan mempertimbangkan ketahanan dan pengalaman pengembang, membuat penanganan error menjadi jauh lebih sederhana. Arsitektur modular berbasis AI kami menyediakan respons API yang jelas dan kode error standar yang terintegrasi secara mulus dengan tipe error kustom aplikasi Rust Anda. API secara konsisten menyediakan header batas laju, memungkinkan sistem Anda untuk mengimplementasikan strategi pembatasan diri dan backoff proaktif secara efektif. Dengan KYC Inti Gratis Didit, Anda dapat membangun dan menguji strategi penanganan error tingkat lanjut ini tanpa biaya di muka. SDK komprehensif dan API bersih kami menyederhanakan integrasi fitur-fitur canggih seperti Verifikasi ID, Deteksi Kehidupan Pasif & Aktif, dan Penyaringan & Pemantauan AML. Fokus Didit pada data identitas terstruktur dan alur kerja yang terorkestrasi berarti lebih sedikit error yang tidak terduga dan hasil yang lebih dapat diprediksi, memungkinkan tim Anda untuk mengotomatiskan kepercayaan dengan keyakinan.

Siap Memulai?

Siap melihat Didit beraksi? Dapatkan demo gratis hari ini.

Mulai verifikasi identitas secara gratis dengan tingkat gratis Didit.

Infrastruktur untuk identitas dan fraud.

Satu API untuk KYC, KYB, Transaction Monitoring, dan Wallet Screening. Integrasi dalam 5 menit.

Minta AI untuk merangkum halaman ini
Penanganan Error Didit API Tangguh dengan Rust.