الفهرس
الرمز
رموز الخطأ الأساسية لواجهات برمجة تطبيقات gRPC
في بعض الأحيان قد تنطبق رموز خطأ متعددة. من المفترض أن تعرض الخدمات رمز الخطأ الأكثر تحديدًا الذي ينطبق. على سبيل المثال، يمكنك تفضيل OUT_OF_RANGE
على FAILED_PRECONDITION
إذا تم تطبيق كلا الرمزين. بالمثل، يُرجى تفضيل NOT_FOUND
أو ALREADY_EXISTS
على FAILED_PRECONDITION
.
عمليات التعداد | |
---|---|
OK |
ليس خطأ؛ تم إرجاعها بنجاح. تعيين HTTP: 200 حسنًا |
CANCELLED |
تم إلغاء العملية، وعادةً ما يكون المتصل بها. تعيين HTTP: طلب مغلق من عميل 499 |
UNKNOWN |
حدث خطأ غير معروف. على سبيل المثال، قد يظهر هذا الخطأ عندما تنتمي قيمة تعيين HTTP: خطأ في الخادم الداخلي 500 |
INVALID_ARGUMENT |
حدَّد العميل وسيطة غير صالحة. لاحظ أن هذا يختلف عن تعيين HTTP: 400 طلب غير صالح |
DEADLINE_EXCEEDED |
انتهت صلاحية الموعد النهائي قبل أن تكتمل العملية. بالنسبة إلى العمليات التي تغيّر حالة النظام، قد يظهر هذا الخطأ حتى إذا اكتملت العملية بنجاح. على سبيل المثال، قد تتأخر الاستجابة الناجحة من الخادم لفترة كافية كي تنتهي صلاحية الموعد النهائي. تعيين HTTP: مهلة البوابة 504 |
NOT_FOUND |
لم يتم العثور على بعض العناصر المطلوبة (مثل ملف أو دليل). ملاحظة لمطوّري البرامج: في حال رفض طلب لفئة كاملة من المستخدمين، مثل طرح الميزات تدريجيًا أو القائمة المسموح بها غير المعتمَدة، قد يتم استخدام تعيين HTTP: 404 لم يتم العثور على الصفحة |
ALREADY_EXISTS |
الكيان الذي حاول العميل إنشاءه (مثل ملف أو دليل) موجود من قبل. تعيين HTTP: تعارض 409 |
PERMISSION_DENIED |
لا يملك المتصل إذنًا لتنفيذ العملية المحددة. يجب عدم استخدام تعيين HTTP: 403 محظور |
UNAUTHENTICATED |
لا يحتوي الطلب على بيانات اعتماد مصادقة صالحة للعملية. تعيين HTTP: 401 غير مصرح به |
RESOURCE_EXHAUSTED |
تم استنفاد بعض الموارد، ربما الحصة لكل مستخدم، أو ربما نفدت مساحة نظام الملفات بالكامل. تعيين HTTP: 429 طلبات كثيرة جدًا |
FAILED_PRECONDITION |
تم رفض العملية لأنّ النظام ليس في الحالة المطلوبة لتنفيذ العملية. على سبيل المثال، يكون الدليل المطلوب حذفه غير فارغ، ويتم تطبيق عملية rmdir على غير دليل، وما إلى ذلك. يمكن لمنفِّذي الخدمة استخدام الإرشادات التالية للاختيار بين تعيين HTTP: 400 طلب غير صالح |
ABORTED |
تم إلغاء العملية، عادةً بسبب مشكلة في التزامن، مثل تعذُّر التحقّق من جهاز التسلسل أو إلغاء المعاملة. يمكنك الاطّلاع على الإرشادات أعلاه للاختيار بين تعيين HTTP: تعارض 409 |
OUT_OF_RANGE |
تمت محاولة العملية بعد تجاوز النطاق الصالح. على سبيل المثال، التقديم/الترجيع أو القراءة في نهاية الملف على عكس هناك بعض التداخل إلى حد ما بين تعيين HTTP: 400 طلب غير صالح |
UNIMPLEMENTED |
لم يتم تنفيذ العملية أو أنها غير متاحة/مفعّلة في هذه الخدمة. تعيين HTTP: لم يتم تنفيذ 501 |
INTERNAL |
أخطاء داخلية. وهذا يعني أنّ بعض القيم الثابتة التي توقّعها النظام الأساسي قد تعطلت. يتم الاحتفاظ برمز الخطأ هذا للأخطاء الجسيمة. تعيين HTTP: خطأ في الخادم الداخلي 500 |
UNAVAILABLE |
هذه الخدمة غير متاحة حاليًا. هذه حالة عابرة على الأرجح، ويمكن تصحيحها عن طريق إعادة المحاولة بتراجع. لاحظ أنه ليس من الآمن دائمًا إعادة محاولة إجراء العمليات غير الدورية. يمكنك الاطّلاع على الإرشادات أعلاه للاختيار بين تعيين HTTP: الخدمة 503 غير متاحة |
DATA_LOSS |
تلف أو فقدان بيانات غير قابل للإصلاح. تعيين HTTP: خطأ في الخادم الداخلي 500 |
الحالة
يحدد النوع Status
نموذج خطأ منطقي مناسب لبيئات البرمجة المختلفة، بما في ذلك واجهات برمجة تطبيقات REST وواجهات برمجة التطبيقات RPC. ويتم استخدامه من قِبل gRPC. تحتوي كل رسالة Status
على ثلاث أجزاء من البيانات: رمز الخطأ ورسالة الخطأ وتفاصيل الخطأ.
يمكنك معرفة المزيد حول نموذج الخطأ هذا وكيفية التعامل معه في دليل تصميم واجهة برمجة التطبيقات.
الحقول | |
---|---|
code |
رمز الحالة، الذي يجب أن يكون قيمة تعداد |
message |
رسالة خطأ موجّهة للمطوّر، ويجب أن تكون باللغة الإنجليزية. يجب ترجمة أي رسالة خطأ تظهر للمستخدمين وإرسالها في حقل |
details[] |
قائمة بالرسائل التي تتضمن تفاصيل الخطأ. هناك مجموعة شائعة من أنواع الرسائل التي يمكن أن تستخدمها واجهات برمجة التطبيقات. |