رموز الأخطاء

فهم استجابات أخطاء API وكيفية معالجتها.

نظرة عامة

يُرجع API استجابات أخطاء موحدة مع رموز أخطاء محددة لمساعدتك في تحديد المشكلات وحلها بسرعة.

تنسيق استجابة الخطأ

تتبع جميع استجابات الأخطاء هذا الهيكل:

{
  "status": "error",
  "error": {
    "code": "AUTH_1001",
    "message": "بيانات اعتماد المصادقة مفقودة",
    "details": "حقول 'username' و 'password' مطلوبة كلاهما",
    "timestamp": "2025-12-22T10:30:00Z"
  }
}
الحقلالنوعالوصف
statusstringدائمًا "error" لاستجابات الأخطاء
error.codestringمعرف فريد للخطأ
error.messagestringرسالة خطأ قابلة للقراءة
error.detailsstringسياق إضافي (اختياري)
error.timestampstringطابع زمني ISO 8601

أخطاء المصادقة (1000-1099)

أخطاء متعلقة ببيانات الاعتماد والمصادقة.

الرمزHTTPالرسالةالحل
AUTH_1001 401 بيانات اعتماد المصادقة مفقودة قم بتضمين اسم المستخدم وكلمة المرور في الطلب
AUTH_1002 401 اسم المستخدم أو كلمة المرور غير صالحة تحقق من صحة بيانات الاعتماد
AUTH_1003 403 الحساب مقفل مؤقتًا انتظر قبل إعادة المحاولة أو اتصل بالدعم

أخطاء الحصة (1100-1199)

أخطاء متعلقة بحصة API وحدود الاستخدام.

الرمزHTTPالرسالةالحل
QUOTA_1101 403 حصة API غير كافية اشترِ المزيد من الرصيد أو تحقق من الحصة
QUOTA_1102 429 تجاوز حصة API انتظر تجديد الحصة أو قم بترقية خطتك

أخطاء التحقق (2000-2099)

أخطاء متعلقة بالتحقق من الطلب وبيانات الإدخال.

الرمزHTTPالرسالةالحل
VAL_2001 400 لم يتم رفع ملف قم بتضمين ملف في الطلب
VAL_2002 400 تنسيق ملف غير صالح استخدم التنسيقات المدعومة: PDF، PNG، JPG، WEBP
VAL_2003 400 ملفات PDF متعددة غير مسموح بها قم برفع ملف PDF واحد أو صور متعددة
VAL_2004 400 لا يمكن خلط PDF والصور قم برفع PDF أو صور، وليس كليهما
VAL_2005 400 رمز لغة غير مدعوم استخدم رمز لغة مدعوم

أخطاء المعالجة (3000-3099)

أخطاء أثناء معالجة المستند وتحليل الذكاء الاصطناعي.

الرمزHTTPالرسالةالحل
PROC_3001 500 فشلت معالجة المستند تحقق من جودة الصورة، أعد محاولة الطلب
PROC_3002 500 فشل استخراج البيانات الوصفية تأكد من أن المستند يحتوي على نص قابل للقراءة
PROC_3003 500 فشل استخراج المعايير تحقق من أن تنسيق تحليل الدم قابل للتعرف عليه
PROC_3004 500 فشل إنشاء التفسير أعد محاولة الطلب
PROC_3006 504 انتهت مهلة المعالجة قلل حجم الملف أو قسّمه إلى طلبات متعددة

أخطاء الخادم (5000-5099)

أخطاء خادم داخلية ومشاكل توفر الخدمة.

الرمزHTTPالرسالةالحل
SRV_5001 500 خطأ داخلي في الخادم أعد محاولة الطلب، اتصل بالدعم إذا استمرت المشكلة
SRV_5002 503 الخدمة غير متوفرة مؤقتًا انتظر وأعد المحاولة مع backoff أسي

أفضل ممارسات معالجة الأخطاء

التوصيات
  1. تحقق دائمًا من حقل status - الاستجابات الناجحة لديها "status": "success"
  2. نفّذ منطق إعادة المحاولة للأخطاء المؤقتة (5xx) مع backoff أسي
  3. سجل رموز الأخطاء لتصحيح الأخطاء والمراقبة
  4. اعرض رسائل سهلة الاستخدام بناءً على رموز الأخطاء
  5. استخدم نقاط نهاية sandbox لاختبار معالجة الأخطاء

مثال معالجة الأخطاء (JavaScript)

async function analyzeBloodTest(file) {
  try {
    const response = await fetch(API_URL, {
      method: 'POST',
      body: formData
    });

    const data = await response.json();

    if (data.status === 'error') {
      const errorCode = data.error.code;

      switch (true) {
        case errorCode.startsWith('AUTH_'):
          throw new Error('فشلت المصادقة. تحقق من بيانات اعتمادك.');
        case errorCode.startsWith('QUOTA_'):
          throw new Error('تم تجاوز الحصة. يرجى ترقية خطتك.');
        case errorCode.startsWith('VAL_'):
          throw new Error('طلب غير صالح: ' + data.error.message);
        case errorCode.startsWith('PROC_'):
          // أعد المحاولة لأخطاء المعالجة
          return retryRequest(file);
        default:
          throw new Error('حدث خطأ. يرجى المحاولة مرة أخرى.');
      }
    }

    return data.data;
  } catch (error) {
    console.error('خطأ API:', error);
    throw error;
  }
}