کدهای خطای متعارف برای API های gRPC.
گاهی اوقات ممکن است چندین کد خطا اعمال شود. سرویسها باید خاصترین کد خطایی که اعمال میشود را برگردانند. برای مثال، اگر هر دو کد اعمال میشوند، OUT_OF_RANGE به FAILED_PRECONDITION ترجیح دهید. به طور مشابه NOT_FOUND یا ALREADY_EXISTS را به FAILED_PRECONDITION ترجیح دهید.
| انومها | |
|---|---|
OK | خطا نیست؛ در صورت موفقیت برگردانده میشود. نگاشت HTTP: 200 OK |
CANCELLED | عملیات، معمولاً توسط تماسگیرنده، لغو میشد. نگاشت HTTP: درخواست بسته شده کلاینت ۴۹۹ |
UNKNOWN | خطای ناشناخته. برای مثال، این خطا ممکن است زمانی برگردانده شود که مقدار نگاشت HTTP: خطای ۵۰۰ سرور داخلی |
INVALID_ARGUMENT | کلاینت یک آرگومان نامعتبر مشخص کرده است. توجه داشته باشید که این با نگاشت HTTP: درخواست نامناسب ۴۰۰ |
DEADLINE_EXCEEDED | مهلت قبل از اتمام عملیات به پایان رسیده است. برای عملیاتی که وضعیت سیستم را تغییر میدهند، این خطا ممکن است حتی اگر عملیات با موفقیت انجام شده باشد، بازگردانده شود. به عنوان مثال، پاسخ موفقیتآمیز از سرور میتواند به اندازه کافی به تأخیر بیفتد تا مهلت منقضی شود. نگاشت HTTP: زمان انتظار دروازه ۵۰۴ |
NOT_FOUND | برخی از موجودیتهای درخواستی (مثلاً فایل یا دایرکتوری) یافت نشد. نکته برای توسعهدهندگان سرور: اگر درخواستی برای کل یک کلاس از کاربران رد شود، مانند انتشار تدریجی ویژگی یا لیست دسترسیهای بدون سند، میتوان از نگاشت HTTP: خطای ۴۰۴ یافت نشد |
ALREADY_EXISTS | موجودیتی که کلاینت سعی در ایجاد آن داشته است (مثلاً فایل یا دایرکتوری) از قبل وجود دارد. نگاشت HTTP: تداخل ۴۰۹ |
PERMISSION_DENIED | فراخواننده مجوز اجرای عملیات مشخص شده را ندارد. نگاشت HTTP: ۴۰۳ ممنوع |
UNAUTHENTICATED | درخواست، اعتبارنامههای احراز هویت معتبری برای عملیات ندارد. نگاشت HTTP: خطای ۴۰۱ غیرمجاز |
RESOURCE_EXHAUSTED | برخی از منابع به اتمام رسیدهاند، شاید سهمیه هر کاربر، یا شاید کل سیستم فایل فضای کافی ندارد. نگاشت HTTP: درخواستهای بسیار زیاد ۴۲۹ |
FAILED_PRECONDITION | این عملیات رد شد زیرا سیستم در حالت مورد نیاز برای اجرای عملیات نیست. برای مثال، دایرکتوری که قرار است حذف شود خالی نیست، عملیات rmdir روی یک دایرکتوری غیر از دایرکتوری اعمال میشود و غیره. پیادهسازیکنندگان سرویس میتوانند از دستورالعملهای زیر برای تصمیمگیری بین نگاشت HTTP: درخواست نامناسب ۴۰۰ |
ABORTED | این عملیات معمولاً به دلیل یک مشکل همزمانی مانند خرابی بررسی ترتیبسنج یا لغو تراکنش، لغو شد. برای تصمیمگیری بین نگاشت HTTP: تداخل ۴۰۹ |
OUT_OF_RANGE | این عملیات فراتر از محدودهی معتبر انجام شده است. مثلاً جستجو یا خواندن فراتر از انتهای فایل. برخلاف بین نگاشت HTTP: درخواست نامناسب ۴۰۰ |
UNIMPLEMENTED | این عملیات در این سرویس پیادهسازی نشده یا پشتیبانی/فعال نشده است. نگاشت HTTP: خطای ۵۰۱ پیادهسازی نشده است |
INTERNAL | خطاهای داخلی. این بدان معناست که برخی از ثابتهای مورد انتظار سیستم اصلی، دچار مشکل شدهاند. این کد خطا برای خطاهای جدی در نظر گرفته شده است. نگاشت HTTP: خطای ۵۰۰ سرور داخلی |
UNAVAILABLE | سرویس در حال حاضر در دسترس نیست. این به احتمال زیاد یک وضعیت گذرا است که میتوان با تلاش مجدد با یک backoff آن را اصلاح کرد. توجه داشته باشید که تلاش مجدد برای عملیات غیر خودتوان همیشه ایمن نیست. برای تصمیمگیری بین نگاشت HTTP: سرویس ۵۰۳ در دسترس نیست |
DATA_LOSS | از دست رفتن یا خرابی غیرقابل بازیابی دادهها. نگاشت HTTP: خطای ۵۰۰ سرور داخلی |