نموذج الخطأ

يستخدم Asset Core رموز حالة HTTP القياسية مع استجابات خطأ JSON منظمة. تصف هذه المرجعية نموذج الخطأ وظروف الخطأ الشائعة.

نظرة عامة

تُعاد الأخطاء ككائنات JSON تحتوي على تفاصيل حول ما فشل ولماذا. يشير رمز حالة HTTP إلى فئة الخطأ، بينما يوفر الجسم تفاصيل محددة.

الهيكل

إرشادات إضافية:

النبرة: رسمية
السجل: تقني

السياق:

  • المجال: بنية تحتية للبلوكشين
  • الجمهور: مهندسو الأمن وقادة البنية التحتية
  • الغرض: وثائق تقنية
  • اللغة: ar
  • الاتجاه: RTL

القيود:

  • استخدام لغة محايدة للجنس
  • الحفاظ على أسماء العلامات التجارية
  • الحفاظ على الدقة التقنية
  • ضمان أن تظل علامات الترقيم والترقيم مناسبة للاتجاه RTL
  • الحفاظ على أسماء العلامات التجارية والمصطلحات في القاموس دون ترجمة

الحفاظ على دون ترجمة:

  • code_blocks
  • inline_code
  • الروابط
  • glossary_terms
  • الملاحظات الرياضية

إرشادات القاموس:

الحفاظ على هذه المصطلحات بالضبط (لا تترجم): Asset Core، Asset‑Core، CSP، API، Docker، ECS، daemon، L1، L2، L3، OpenGraph، GitHub، Astro، TypeScript، JavaScript، ℤ، ℤ²، ℤ³، ℝ²، ℝ³، 0D، 1D، 2D، 3D

استجابة الخطأ

{
  "error": {
    "code": "ErrorCode",
    "message": "Human-readable description",
    "details": {
      "field": "additional context"
    }
  }
}

تفاصيل حقول الخطأ

الحقلالنوعالوصف
codeسلسلةمعرف خطأ قابل للقراءة الآلية
messageسلسلةوصف قابل للقراءة البشرية
detailsكائنسياق إضافي (يختلف حسب الخطأ)
operation_indexعدد صحيحأي عملية فشلت (للمعاملات)

الحقول

رموز حالة HTTP

الحالةالمعنىمتى تستخدم
200 OKنجاحتم إكمال الطلب بنجاح
400 Bad Requestطلب غير صالحJSON مشوه، حقول مفقودة
404 Not Foundالمورد غير موجودالحاوية أو الفئة غير موجودة
409 Conflictتعارض الحالةتصادم مفتاح التكرار، موجود بالفعل
422 Unprocessable Entityفشل التحققلم يتم استيفاء شروط العملية
500 Internal Server Errorخطأ في الخادمفشل غير متوقع
503 Service Unavailableغير متاح مؤقتًاتحميل زائد، إيقاف التشغيل

رموز الأخطاء الشائعة

أخطاء الحاويات

الرمزالحالةالوصف
ContainerNotFound404الحاوية المحددة غير موجودة
ContainerAlreadyExists409معرف الحاوية قيد الاستخدام بالفعل
WrongContainerKind422العملية غير مدعومة لهذا النوع من الحاويات

أخطاء التوازن

الرمزالحالةالوصف
InvalidQuantity422يجب أن تكون الكمية أكبر من الصفر
InsufficientBalance422رصيد غير كافٍ للعملية
InvalidOperation422العملية ستتجاوز الحدود أو غير صالحة

أخطاء المثيل

الرمزالحالةالوصف
InstanceNotFound404المثيل المحدد غير موجود
AlreadyAttached409المثيل لديه والد بالفعل
NotAttached422المثيل ليس لديه والد لفصله
HasChildren422يجب فصل الأطفال قبل الحرق
WouldCreateCycle422الربط سيخلق دورة

أخطاء الفتحات

الرمزالحالةالوصف
SlotOutOfBounds422مؤشر الفتحة يتجاوز سعة الحاوية
SlotOccupied409الفتحة تحتوي بالفعل على مثيل
SlotEmpty422الفتحة لا تحتوي على مثيل

أخطاء المخطط

الرمزالحالةالوصف
ClassNotFound404الفئة المحددة غير مسجلة
ClassAlreadyExists409معرف الفئة مسجل بالفعل
ShapeAlreadyDefined409معرف الشكل موجود بالفعل لهذه الفئة
UnregisteredClassShape422الشكل مطلوب ولكنه غير مسجل

أخطاء النظام

الرمزالحالةالوصف
ParseError400JSON غير صالح في جسم الطلب
ValidationError422فشل التحقق من صحة الطلب
IntegerOverflow422العملية العددية ستتجاوز الحد
ServiceUnavailable503النظام مثقل أو في حالة إيقاف التشغيل

أمثلة

إرشادات إضافية:

النبرة: رسمية السجل: تقني

السياق:

  • المجال: بنية تحتية للبلوك تشين
  • الجمهور: مهندسو الأمان وقادة البنية التحتية
  • الغرض: وثائق تقنية
  • اللغة: ar
  • الاتجاه: من اليمين إلى اليسار

القيود:

  • استخدام لغة محايدة للجنس
  • الحفاظ على أسماء العلامات التجارية
  • الحفاظ على الدقة التقنية
  • ضمان أن تظل علامات الترقيم والترقيم مناسبة من حيث الاتجاه
  • الحفاظ على أسماء العلامات التجارية والمصطلحات غير مترجمة

الحفاظ على دون ترجمة:

  • code_blocks
  • inline_code
  • links
  • glossary_terms
  • mathematical_notation

إرشادات المصطلحات:

الحفاظ على هذه المصطلحات بالضبط (لا تترجم): Asset Core, Asset‑Core, CSP, API, Docker, ECS, daemon, L1, L2, L3, OpenGraph, GitHub, Astro, TypeScript, JavaScript, ℤ, ℤ², ℤ³, ℝ², ℝ³, 0D, 1D, 2D, 3D

طلب غير صحيح (400)

JSON غير صالح:

{
  "error": {
    "code": "ParseError",
    "message": "Failed to parse JSON body",
    "details": {
      "position": 42,
      "expected": "string"
    }
  }
}

غير موجود (404)

الحاوية غير موجودة:

{
  "error": {
    "code": "ContainerNotFound",
    "message": "Container 1001 does not exist",
    "details": {
      "container_id": 1001
    }
  }
}

الصراع (409)

مفتاح التكرار قد تم استخدامه بالفعل بمحتوى مختلف:

{
  "error": {
    "code": "IdempotencyConflict",
    "message": "Idempotency key 'create-1001' was used with different request content",
    "details": {
      "idempotency_key": "create-1001"
    }
  }
}

الكيان غير القابل للمعالجة (422)

رصيد غير كافٍ:

{
  "error": {
    "code": "InsufficientBalance",
    "message": "Insufficient balance: requested 500, available 100",
    "details": {
      "container_id": 1001,
      "class_id": 100,
      "key": 1,
      "requested": 500,
      "available": 100
    },
    "operation_index": 0
  }
}

الخدمة غير متاحة (503)

نظام مثقل:

{
  "error": {
    "code": "ServiceUnavailable",
    "message": "System is at capacity, please retry later",
    "details": {
      "queue_depth": 1000,
      "retry_after_ms": 100
    }
  }
}

المراجع ذات الصلة