Pola Umum
Penanganan Error
API Qwetty menggunakan kode status HTTP standar dan format respons error yang konsisten.
Format respons error
API mengembalikan error dalam dua bentuk tergantung dari mana asalnya:
Error autentikasi, izin, dan rate-limit (dilempar secara terpusat) menggunakan:
Code
Array errors hanya ada untuk error validasi.
Error tingkat endpoint (seperti "tidak ditemukan" atau field wajib yang hilang) dikembalikan oleh controller sebagai:
Code
Jadi saat menangani error, periksa baik field message maupun error.
Kode status HTTP
| Kode | Arti | Kapan terjadi |
|---|---|---|
| 400 | Bad Request | Body permintaan tidak valid atau field wajib hilang |
| 401 | Unauthorized | API key hilang, tidak valid, atau kedaluwarsa |
| 403 | Forbidden | API key tidak memiliki izin, IP tidak di-whitelist, atau kuota bulanan terlampaui |
| 404 | Not Found | Resource tidak ada atau milik organisasi lain |
| 429 | Too Many Requests | Batas rate terlampaui |
Error umum dan solusinya
| Error | Penyebab | Solusi |
|---|---|---|
| "Missing or invalid Authorization header" | Tidak ada Bearer token | Tambahkan header Authorization: Bearer YOUR_KEY |
| "Invalid or expired API key" | Key tidak ada, dicabut, atau kedaluwarsa | Periksa key Anda di Pengaturan → API Keys |
| "Rate limit exceeded" | Terlalu banyak permintaan | Terapkan backoff; periksa header batas rate (rate limit) |
| "Chat not found" | ID chat tidak ada atau bukan milik organisasi Anda | Verifikasi ID chat dengan GET /chats |
Header batas rate (rate limit)
Ketika dibatasi rate, respons menyertakan:
| Header | Deskripsi |
|---|---|
X-RateLimit-Limit | Maksimum permintaan per jendela |
X-RateLimit-Remaining | Permintaan tersisa |
X-RateLimit-Reset | Kapan jendela direset (stempel waktu Unix) |
Langkah selanjutnya
- Paginasi & Filter — Menavigasi kumpulan hasil yang besar
- Batas Rate (Rate Limit) — Informasi batas rate (rate limit) terperinci
Last modified on