كل المستندات

معالجة الأخطاء

رموز أخطاء واجهة نيزا وصيغ الردود، ومتى تعيد المحاولة ومتى لا تعيدها بعد انتهاء المهلة، حتى لا تتكرر العمليات.

الأخطاء

صيغة موحدة للأخطاء، مع توضيح ما يمكن إعادة محاولته وما يحتاج إلى تصحيح.

صيغة الخطأ
{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Request validation failed",
    "details": { "field": "eventName" },
    "requestId": "req_abc123"
  }
}

رموز HTTP وكيفية التعامل معها

الحقلالنوعمطلوبالوصف
400 / 422Client errorلا تُعِد المحاولةصحح JSON أو الحقول والقيم ثم أرسل طلبًا جديدًا
401Authenticationلا تُعِد المحاولةتحقق من المفتاح أو رمز Bearer والبيئة
403Authorizationلا تُعِد المحاولةالميزة غير مفعلة أو المفتاح لا يملك الصلاحية
404Not foundلا تُعِد المحاولةتحقق من المعرّف والمسار وحساب المنشأة
409Conflictحسب العمليةتعارض مع مورد أو حالة موجودة مسبقًا
429Rate limitأعد المحاولةالتزم بقيمة Retry-After، وأعد المحاولة بتأخير متزايد (backoff) مع تفاوت عشوائي (jitter)
5xxServer errorأعد المحاولةخطأ مؤقت؛ أعد المحاولة بعد مهلة مع تحديد عدد أقصى للمحاولات

معالجة آمنة في التطبيق

JavaScript
const response = await fetch(url, options);
const body = await response.json();

if (!response.ok) {
  const retryable = response.status === 429 || response.status >= 500;
  logger.warn({
    status: response.status,
    code: body.error?.code,
    requestId: body.error?.requestId,
  });
  if (!retryable) throw new Error(body.error?.message);
}

اعرض رسالة مناسبة للمستخدم ولا تعرض تفاصيل داخلية. عند مراسلة الدعم، أرسل requestId والوقت والمسار من دون المفتاح أو البيانات الحساسة.