شاخص
کد
کدهای خطای متعارف برای 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 | خطای ناشناخته به عنوان مثال، این خطا ممکن است زمانی برگردانده شود که یک مقدار HTTP Mapping: 500 خطای سرور داخلی |
INVALID_ARGUMENT | مشتری یک آرگومان نامعتبر را مشخص کرده است. توجه داشته باشید که این با نقشه برداری HTTP: 400 درخواست بد |
DEADLINE_EXCEEDED | مهلت قبل از تکمیل عملیات به پایان رسید. برای عملیاتی که وضعیت سیستم را تغییر می دهد، حتی اگر عملیات با موفقیت به پایان رسیده باشد، ممکن است این خطا برگردانده شود. به عنوان مثال، یک پاسخ موفقیتآمیز از یک سرور میتوانست آنقدر به تأخیر بیفتد که مهلت آن به پایان برسد. HTTP Mapping: 504 Gateway Timeout |
NOT_FOUND | برخی از موجودیت های درخواستی (به عنوان مثال، فایل یا دایرکتوری) یافت نشد. توجه به توسعه دهندگان سرور: اگر درخواستی برای کل دسته از کاربران رد شود، مانند عرضه تدریجی ویژگی یا لیست مجاز غیرمستند، نقشه برداری HTTP: 404 یافت نشد |
ALREADY_EXISTS | موجودیتی که یک کلاینت سعی کرد ایجاد کند (مثلاً فایل یا دایرکتوری) از قبل وجود دارد. HTTP Mapping: 409 Conflict |
PERMISSION_DENIED | تماس گیرنده اجازه اجرای عملیات مشخص شده را ندارد. HTTP Mapping: 403 Forbidden |
UNAUTHENTICATED | درخواست دارای اعتبار احراز هویت معتبر برای عملیات نیست. نقشه برداری HTTP: 401 غیر مجاز |
RESOURCE_EXHAUSTED | برخی از منابع تمام شده است، شاید سهمیه هر کاربر، یا شاید کل سیستم فایل خالی است. نقشه برداری HTTP: 429 درخواست خیلی زیاد |
FAILED_PRECONDITION | عملیات رد شد زیرا سیستم در وضعیت لازم برای اجرای عملیات نیست. به عنوان مثال، دایرکتوری که باید حذف شود خالی نیست، یک عملیات rmdir روی یک غیر دایرکتوری اعمال می شود و غیره. پیادهکنندههای سرویس میتوانند از دستورالعملهای زیر برای تصمیمگیری بین نقشه برداری HTTP: 400 درخواست بد |
ABORTED | این عملیات معمولاً به دلیل یک مشکل همزمانی مانند شکست چک ترتیبدهنده یا لغو تراکنش متوقف شد. برای تصمیم گیری بین HTTP Mapping: 409 Conflict |
OUT_OF_RANGE | عملیات از محدوده معتبر گذشته است. به عنوان مثال، جستجو یا خواندن پایان فایل گذشته. برخلاف مقداری همپوشانی بین نقشه برداری HTTP: 400 درخواست بد |
UNIMPLEMENTED | عملیات اجرا نشده یا در این سرویس پشتیبانی/فعال نمی شود. نقشه برداری HTTP: 501 اجرا نشده است |
INTERNAL | خطاهای داخلی این بدان معنی است که برخی از متغیرهای مورد انتظار سیستم اصلی شکسته شده اند. این کد خطا برای خطاهای جدی رزرو شده است. HTTP Mapping: 500 خطای سرور داخلی |
UNAVAILABLE | این سرویس در حال حاضر در دسترس نیست. این به احتمال زیاد یک وضعیت گذرا است، که می توان با تلاش مجدد با عقب نشینی آن را اصلاح کرد. توجه داشته باشید که همیشه امتحان مجدد عملیات های غیر توانمند ایمن نیست. برای تصمیم گیری بین نقشه برداری HTTP: سرویس 503 در دسترس نیست |
DATA_LOSS | از دست دادن یا فساد غیرقابل جبران داده. HTTP Mapping: 500 خطای سرور داخلی |
وضعیت
نوع Status
یک مدل خطای منطقی را تعریف می کند که برای محیط های برنامه نویسی مختلف، از جمله REST API و RPC API مناسب است. توسط gRPC استفاده می شود. هر پیام Status
شامل سه داده است: کد خطا، پیام خطا و جزئیات خطا.
در راهنمای طراحی API میتوانید درباره این مدل خطا و نحوه کار با آن اطلاعات بیشتری کسب کنید.
فیلدها | |
---|---|
code | کد وضعیت، که باید مقداری از |
message | یک پیغام خطای برنامهنویس، که باید به زبان انگلیسی باشد. هر پیام خطای کاربر باید بومی سازی شده و در قسمت |
details[] | لیستی از پیام هایی که حاوی جزئیات خطا هستند. مجموعه ای متداول از انواع پیام ها برای استفاده API ها وجود دارد. |