קודי שגיאה קנוניים לממשקי API של gRPC.
לפעמים ייתכן שיופיעו כמה קודי שגיאה. השירותים צריכים להחזיר את קוד השגיאה הספציפי ביותר שרלוונטי. לדוגמה, עדיף OUT_OF_RANGE
על FAILED_PRECONDITION
אם שני הקודים חלים. באופן דומה, עדיף NOT_FOUND
או ALREADY_EXISTS
על פני FAILED_PRECONDITION
.
טיפוסים בני מנייה (enum) | |
---|---|
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 |