كل المستندات

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

أشكال الأخطاء ورموز الحالة وإرشادات إعادة المحاولة.

الأخطاء

صيغة موحدة للأخطاء مع استراتيجية واضحة لما يُعاد وما يحتاج إلى تصحيح.

صيغة الخطأ
{
  "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 والوقت والمسار من دون المفتاح أو البيانات الحساسة.