אינדקס
קוד
קודי השגיאה הקנוניים של ממשקי API של gRPC.
לפעמים יכולים להיות כמה קודי שגיאה. שירותים צריכים להחזיר את קוד השגיאה הספציפי ביותר שרלוונטי. לדוגמה, אם שני הקודים רלוונטיים, עדיף להשתמש ב-OUT_OF_RANGE
במקום ב-FAILED_PRECONDITION
. באופן דומה, עדיף להשתמש ב-NOT_FOUND
או ב-ALREADY_EXISTS
במקום ב-FAILED_PRECONDITION
.
טיפוסים בני מנייה (enum) | |
---|---|
OK |
לא שגיאה. הקוד מוחזר אם הפעולה בוצעה בהצלחה. מיפוי HTTP: 200 OK |
CANCELLED |
הפעולה בוטלה, בדרך כלל על ידי מבצע הקריאה החוזרת. מיפוי HTTP: 499 Client Closed Request |
UNKNOWN |
שגיאה לא ידועה. לדוגמה, השגיאה הזו עשויה להופיע אם ערך מיפוי HTTP: 500 שגיאת שרת פנימית |
INVALID_ARGUMENT |
הלקוח ציין ארגומנט לא חוקי. הערה: הערך הזה שונה מ- מיפוי HTTP: 400 Bad Request |
DEADLINE_EXCEEDED |
מועד היעד פג לפני שהפעולה הושלמה. בפעולות שמחליפות את מצב המערכת, יכול להיות שהשגיאה הזו תוחזר גם אם הפעולה הושלמה בהצלחה. לדוגמה, יכול להיות שתגובה מוצלחת משרת התעכבה מספיק זמן כדי שהמועד האחרון יפוג. מיפוי HTTP: 504 Gateway Timeout |
NOT_FOUND |
ישות מסוימת שהתבקשה (למשל, קובץ או ספרייה) לא נמצאה. הערה למפתחי שרתים: אם בקשה נדחית לגבי סוג שלם של משתמשים, למשל השקה הדרגתית של תכונה או רשימת היתרים לא מתועדת, אפשר להשתמש ב- מיפוי HTTP: 404 לא נמצא |
ALREADY_EXISTS |
הישות שהלקוח ניסה ליצור (למשל, קובץ או ספרייה) כבר קיימת. מיפוי HTTP: 409 Conflict |
PERMISSION_DENIED |
אין למתקשר הרשאה לבצע את הפעולה שצוינה. אסור להשתמש ב- מיפוי HTTP: 403 Forbidden |
UNAUTHENTICATED |
הבקשה לא כוללת פרטי כניסה תקפים לאימות הפעולה. מיפוי HTTP: 401 Unauthorized |
RESOURCE_EXHAUSTED |
משאב מסוים אזל, אולי מכסה לכל משתמש, או אולי אין יותר מקום פנוי בכל מערכת הקבצים. מיפוי HTTP: 429 Too Many Requests |
FAILED_PRECONDITION |
הפעולה נדחתה כי המערכת לא במצב הנדרש לביצוע הפעולה. לדוגמה, הספרייה שרוצים למחוק לא ריקה, פעולת rmdir חלה על אובייקט שאינו ספרייה וכו'. מפתחי שירותים יכולים להשתמש בהנחיות הבאות כדי להחליט בין הערכים מיפוי HTTP: 400 Bad Request |
ABORTED |
הפעולה בוטלה, בדרך כלל בגלל בעיה של בו-זמניות, כמו כשל בבדיקת מאסף או ביטול עסקה. בהנחיות שלמעלה מוסבר איך קובעים בין מיפוי HTTP: 409 Conflict |
OUT_OF_RANGE |
נעשו ניסיונות לבצע את הפעולה מחוץ לטווח החוקי. לדוגמה, דילוג או קריאה מעבר לסוף הקובץ. בשונה מ- יש חפיפה רבה בין מיפוי HTTP: 400 Bad Request |
UNIMPLEMENTED |
הפעולה לא יושמה או לא נתמכת/מופעלת בשירות הזה. מיפוי HTTP: 501 Not Implemented |
INTERNAL |
שגיאות פנימיות. המשמעות היא שחלק מהקבועים שלא משתנים שמצופים במערכת הבסיסית הופרו. קוד השגיאה הזה מיועד לשגיאות חמורות. מיפוי HTTP: 500 שגיאת שרת פנימית |
UNAVAILABLE |
השירות הזה לא זמין כרגע. סביר להניח שמדובר במצב זמני, שאפשר לתקן אותו על ידי ניסיון חוזר עם זמן המתנה. חשוב לזכור שלא תמיד בטוח לנסות שוב פעולות שהן לא אידמפוטנטיות. בהנחיות שלמעלה מוסבר איך קובעים בין מיפוי HTTP: 503 Service Unavailable |
DATA_LOSS |
אובדן נתונים או פגיעה בנתונים שלא ניתן לשחזר. מיפוי HTTP: 500 שגיאת שרת פנימית |
סטטוס
הסוג Status
מגדיר מודל שגיאה לוגי שמתאים לסביבות תכנות שונות, כולל ממשקי API ל-REST וממשקי API ל-RPC. הוא משמש את gRPC. כל הודעה מסוג Status
מכילה שלושה נתונים: קוד שגיאה, הודעת שגיאה ופרטי השגיאה.
מידע נוסף על מודל השגיאות הזה ועל אופן השימוש בו זמין במדריך לעיצוב API.
שדות | |
---|---|
code |
קוד הסטטוס, שצריך להיות ערך enum של |
message |
הודעת שגיאה למפתחים, שצריכה להיות באנגלית. כל הודעת שגיאה שמוצגת למשתמש צריכה להיות מותאמת לשוק המקומי ונשלחת בשדה |
details[] |
רשימה של הודעות שמכילות את פרטי השגיאה. יש קבוצה משותפת של סוגי הודעות שאפשר להשתמש בהם בממשקי API. |