با مجموعهها، منظم بمانید
ذخیره و دستهبندی محتوا براساس اولویتهای شما.
کدهای خطای متعارف برای APIهای gRPC.
گاهی اوقات ممکن است چندین کد خطا اعمال شود. سرویسها باید خاصترین کد خطای اعمال شده را برگردانند. برای مثال، اگر هر دو کد اعمال شوند OUT_OF_RANGE را به FAILED_PRECONDITION ترجیح دهید. به طور مشابه NOT_FOUND یا ALREADY_EXISTS را نسبت به FAILED_PRECONDITION ترجیح دهید.
Enums
OK
خطا نیست؛ با موفقیت بازگشت.
نقشه برداری HTTP: 200 OK
CANCELLED
این عملیات معمولاً توسط تماس گیرنده لغو شد.
HTTP Mapping: 499 Client Request
UNKNOWN
خطای ناشناخته. به عنوان مثال، این خطا ممکن است زمانی برگردانده شود که یک مقدار Status دریافت شده از فضای آدرس دیگری متعلق به فضای خطایی باشد که در این فضای آدرس شناخته شده نیست. همچنین خطاهای مطرح شده توسط APIهایی که اطلاعات خطای کافی را بر نمی گردند ممکن است به این خطا تبدیل شوند.
HTTP Mapping: 500 خطای سرور داخلی
INVALID_ARGUMENT
مشتری یک آرگومان نامعتبر را مشخص کرده است. توجه داشته باشید که این با FAILED_PRECONDITION متفاوت است. INVALID_ARGUMENT آرگومان هایی را نشان می دهد که بدون توجه به وضعیت سیستم مشکل ساز هستند (به عنوان مثال، نام فایل نادرست).
نقشه برداری HTTP: 400 درخواست بد
DEADLINE_EXCEEDED
مهلت قبل از تکمیل عملیات به پایان رسید. برای عملیاتی که وضعیت سیستم را تغییر می دهد، حتی اگر عملیات با موفقیت به پایان رسیده باشد، ممکن است این خطا برگردانده شود. به عنوان مثال، یک پاسخ موفقیتآمیز از یک سرور میتوانست آنقدر به تأخیر بیفتد که مهلت آن به پایان برسد.
HTTP Mapping: 504 Gateway Timeout
NOT_FOUND
برخی از موجودیت های درخواستی (به عنوان مثال، فایل یا دایرکتوری) یافت نشد.
توجه به توسعه دهندگان سرور: اگر درخواستی برای کل دسته از کاربران رد شود، مانند عرضه تدریجی ویژگی یا لیست مجاز غیرمستند، NOT_FOUND ممکن است استفاده شود. اگر درخواستی برای برخی از کاربران در یک کلاس از کاربران رد شود، مانند کنترل دسترسی مبتنی بر کاربر، باید از PERMISSION_DENIED استفاده شود.
نقشه برداری HTTP: 404 یافت نشد
ALREADY_EXISTS
موجودیتی که یک کلاینت سعی کرد ایجاد کند (مثلاً فایل یا دایرکتوری) از قبل وجود دارد.
HTTP Mapping: 409 Conflict
PERMISSION_DENIED
تماس گیرنده اجازه اجرای عملیات مشخص شده را ندارد. PERMISSION_DENIED نباید برای ردهای ناشی از فرسودگی برخی منابع استفاده شود (به جای آن از RESOURCE_EXHAUSTED برای آن خطاها استفاده کنید). اگر تماس گیرنده قابل شناسایی نباشد PERMISSION_DENIED نباید استفاده شود (به جای آن از UNAUTHENTICATED برای آن خطاها استفاده کنید). این کد خطا به این معنی نیست که درخواست معتبر است یا موجودیت درخواست شده وجود دارد یا سایر پیش شرط ها را برآورده می کند.
HTTP Mapping: 403 Forbidden
UNAUTHENTICATED
درخواست دارای اعتبار احراز هویت معتبر برای عملیات نیست.
نقشه برداری HTTP: 401 غیر مجاز
RESOURCE_EXHAUSTED
برخی از منابع تمام شده است، شاید سهمیه هر کاربر، یا شاید کل سیستم فایل خالی است.
نقشه برداری HTTP: 429 درخواست خیلی زیاد
FAILED_PRECONDITION
عملیات رد شد زیرا سیستم در وضعیت لازم برای اجرای عملیات نیست. به عنوان مثال، دایرکتوری که باید حذف شود خالی نیست، یک عملیات rmdir روی یک غیر دایرکتوری اعمال می شود و غیره.
پیادهکنندههای سرویس میتوانند از دستورالعملهای زیر برای تصمیمگیری بین FAILED_PRECONDITION ، ABORTED و UNAVAILABLE استفاده کنند: (الف) اگر مشتری بتواند فقط تماس ناموفق را دوباره امتحان کند، از UNAVAILABLE استفاده کنید. (ب) اگر مشتری باید در سطح بالاتری دوباره تلاش کند، از ABORTED استفاده کنید. به عنوان مثال، هنگامی که یک تست و تنظیم مشخص شده توسط سرویس گیرنده با شکست مواجه می شود، نشان می دهد که مشتری باید یک دنباله خواندن-تغییر-نوشتن را دوباره راه اندازی کند. (ج) از FAILED_PRECONDITION استفاده کنید اگر کلاینت نباید دوباره تلاش کند تا زمانی که وضعیت سیستم به صراحت ثابت نشده باشد. به عنوان مثال، اگر یک "rmdir" به دلیل خالی نبودن دایرکتوری از کار بیفتد، FAILED_PRECONDITION باید برگردانده شود زیرا مشتری نباید دوباره امتحان کند مگر اینکه فایل ها از دایرکتوری حذف شوند.
نقشه برداری HTTP: 400 درخواست بد
ABORTED
این عملیات معمولاً به دلیل یک مشکل همزمانی مانند شکست چک ترتیبدهنده یا لغو تراکنش متوقف شد.
برای تصمیم گیری بین FAILED_PRECONDITION , ABORTED , و UNAVAILABLE به دستورالعمل های بالا مراجعه کنید.
HTTP Mapping: 409 Conflict
OUT_OF_RANGE
عملیات از محدوده معتبر گذشته است. به عنوان مثال، جستجو یا خواندن پایان فایل گذشته.
برخلاف INVALID_ARGUMENT ، این خطا نشان دهنده مشکلی است که در صورت تغییر وضعیت سیستم ممکن است برطرف شود. به عنوان مثال، یک سیستم فایل 32 بیتی اگر از شما خواسته شود در یک آفست خوانده شود که در محدوده [0,2^32-1] نیست، INVALID_ARGUMENT تولید می کند، اما اگر از یک آفست گذشته از فعلی خواسته شود OUT_OF_RANGE را بخواند. حجم فایل.
مقداری همپوشانی بین FAILED_PRECONDITION و OUT_OF_RANGE وجود دارد. توصیه میکنیم هنگام اعمال OUT_OF_RANGE (خطای خاصتر) استفاده کنید تا تماسگیرندگانی که در حال تکرار در یک فاصله هستند بتوانند به راحتی به دنبال خطای OUT_OF_RANGE بگردند تا تشخیص دهند که چه زمانی انجام شده است.
نقشه برداری HTTP: 400 درخواست بد
UNIMPLEMENTED
عملیات اجرا نشده یا در این سرویس پشتیبانی/فعال نمی شود.
نقشه برداری HTTP: 501 اجرا نشده است
INTERNAL
خطاهای داخلی این بدان معنی است که برخی از متغیرهای مورد انتظار سیستم اساسی شکسته شده اند. این کد خطا برای خطاهای جدی رزرو شده است.
HTTP Mapping: 500 خطای سرور داخلی
UNAVAILABLE
این سرویس در حال حاضر در دسترس نیست. این به احتمال زیاد یک وضعیت گذرا است، که می توان با تلاش مجدد با عقب نشینی آن را اصلاح کرد. توجه داشته باشید که همیشه امتحان مجدد عملیات های غیر توانمند ایمن نیست.
برای تصمیم گیری بین FAILED_PRECONDITION , ABORTED , و UNAVAILABLE به دستورالعمل های بالا مراجعه کنید.
تاریخ آخرین بهروزرسانی 2024-10-30 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2024-10-30 بهوقت ساعت هماهنگ جهانی."],[[["This document outlines the canonical error codes for gRPC APIs, providing a standardized way to handle and interpret errors across different services."],["Each error code has a corresponding HTTP mapping for easier integration with existing web infrastructure."],["Services should prioritize returning the most specific error code applicable to a given situation."],["Error codes provide guidance on whether clients should retry an operation and under what conditions."],["These error codes cover a wide range of scenarios, including invalid arguments, authentication failures, resource exhaustion, and system unavailability."]]],[]]