الأخطاء
هذه قائمة كاملة بالأخطاء التي قد تعيدها واجهة برمجة تطبيقات منصة Kaleidr. لكل خطأ حالة HTTP ورمز، وهو سلسلة قصيرة ثابتة يمكن للشيفرة اتخاذ قرار بناءً عليها. لا تكفي الحالة وحدها؛ فالرمز 403 قد يشير إلى أسباب مختلفة، وقد يعني 429 إما «خفّض معدل الطلبات» أو «نفدت حصتك».
ابدأ بأشكال الاستجابة، لأن الرمز لا يوجد دائمًا في الحقل نفسه.
أشكال الاستجابة
| الشكل | مثال | مواضع الاستخدام |
|---|---|---|
| رمز مغلّف | {"detail": "origin_not_allowed"} | معظم أخطاء 401 و403 و404 و413 و500 و503، ورموز حدود الطلبات مع 422، وخطآن مع 429 (map_load_quota_exceeded وingest_rate_limited من واجهة برمجة الرفع). الرمز هو سلسلة detail. |
| كائن مسطّح | {"error": "rate_limited", "detail": "API key rate limit exceeded. Slow down."} | بقية أخطاء 429. يوجد الرمز في error؛ بينما يحتوي detail على جملة موجّهة للمستخدم. وتضيف أخطاء الحصة حقولًا أخرى. |
| قائمة تحقق | {"detail": [{"loc": ["body", "product"], "msg": "…", "type": "…"}]} | استجابة 422 لمتن طلب أو استعلام غير صالح. الحقل detail مصفوفة فيها إدخال لكل مشكلة. |
| خطأ مع 200 | {"error": "Route planning failed."} | يخص POST /chat/control/route فقط. راجع أدناه. |
دالة تقرأ الرمز من أيٍّ من هذه الأشكال:
async function kaleidrError(res) {
const body = await res.json().catch(() => ({}));
const code =
typeof body.error === 'string' ? body.error : // flat 429
typeof body.detail === 'string' ? body.detail : // wrapped code
Array.isArray(body.detail) ? 'validation_error' : // 422
'unknown_error';
return { status: res.status, code, body, retryAfter: Number(res.headers.get('retry-after')) || null };
}
ترويسَتان مهمتان: Retry-After في استجابات 429، وقيمته بالثواني، وX-Request-Id عند وجودها، وهي تحدد الطلب إذا تواصلت مع الدعم.
المصادقة: 401
لا تقبل واجهة البرمجة بيانات الاعتماد.