אינדקס
קוד
קודי השגיאה הקנוניים לממשקי 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 |
NOT_FOUND |
לא נמצאה ישות מבוקשת (למשל קובץ או ספרייה). הערה למפתחי שרתים: אם בקשה מסוימת נדחית עבור קבוצת משתמשים שלמה, כמו השקה הדרגתית של תכונה או רשימת היתרים לא מתועדת, ניתן להשתמש ב- מיפוי HTTP: 404 לא נמצא |
ALREADY_EXISTS |
הישות שהלקוח ניסה ליצור (למשל, קובץ או ספרייה) כבר קיימת. מיפוי HTTP: התנגשות 409 |
PERMISSION_DENIED |
למשתמש ששלח את הקריאה אין הרשאה לבצע את הפעולה שצוינה. אין להשתמש בפונקציה מיפוי HTTP: 403 Forbidden |
UNAUTHENTICATED |
לבקשה אין פרטי כניסה תקפים לאימות הפעולה. מיפוי HTTP: 401 Unauthorized |
RESOURCE_EXHAUSTED |
חלק מהמשאבים אזלו, אולי מכסה לכל משתמש, או אולי אין מספיק מקום במערכת הקבצים כולה. מיפוי HTTP: 429 בקשות רבות מדי |
FAILED_PRECONDITION |
הפעולה נדחתה כי המערכת לא במצב שנדרש לביצוע הפעולה. לדוגמה, הספרייה שרוצים למחוק לא ריקה, פעולת rmdir חלה על ספרייה שאינה ספרייה וכו'. מטמיעי שירותים יכולים להשתמש בהנחיות הבאות כדי להחליט בין מיפוי HTTP: 400 Bad Request |
ABORTED |
הפעולה בוטלה, בדרך כלל עקב בעיה בו-זמניות (concurrency) כגון כשל בבדיקת רצף או ביטול עסקה. ההנחיות שלמעלה יעזרו לך להחליט בין מיפוי HTTP: התנגשות 409 |
OUT_OF_RANGE |
בוצע ניסיון לבצע את הפעולה מעבר לטווח התקף. לדוגמה, דילוג או קריאה מעבר לסוף הקובץ. בניגוד ל- יש חפיפה במידה מסוימת בין מיפוי HTTP: 400 Bad Request |
UNIMPLEMENTED |
הפעולה לא יושמה או אינה נתמכת/מופעלת בשירות זה. מיפוי HTTP: 501 לא מיושם |
INTERNAL |
שגיאות פנימיות. המשמעות היא שחלק מהמשתנים הקבועים הצפויים על ידי המערכת הבסיסית מנותקים. קוד השגיאה הזה שמור לשגיאות חמורות. מיפוי HTTP: שגיאת שרת פנימית 500 |
UNAVAILABLE |
השירות הזה לא זמין כרגע. סביר להניח שמדובר במצב זמני, ואפשר לתקן אותו באמצעות ניסיון חוזר עם השהיה לפני ניסיון חוזר (backoff). שימו לב שלא תמיד בטוח לבצע ניסיון חוזר של פעולות שהן לא אידמפוטנטיות. ההנחיות שלמעלה יעזרו לך להחליט בין מיפוי HTTP: 503 Service Unavailable |
DATA_LOSS |
אובדן או השחתה של נתונים שלא ניתן לשחזר. מיפוי HTTP: שגיאת שרת פנימית 500 |
סטטוס
הסוג Status
מגדיר מודל שגיאות לוגי שמתאים לסביבות תכנות שונות, כולל ממשקי API ל-REST וממשקי API ל-RPC. הוא נמצא בשימוש של gRPC. כל הודעת Status
מכילה שלושה נתונים: קוד שגיאה, הודעת שגיאה ופרטי שגיאה.
במדריך לעיצוב API אפשר לקרוא מידע נוסף על מודל השגיאות הזה ולהבין איך לעבוד איתו.
שדות | |
---|---|
code |
קוד הסטטוס, שצריך להיות ערך enum של |
message |
הודעת שגיאה שמיועדת למפתחים וצריכה להיות באנגלית. כל הודעת שגיאה שמוצגת למשתמשים צריכה להיות מותאמת לשוק המקומי ולשלוח אותה בשדה |
details[] |
רשימה של הודעות שמכילות את פרטי השגיאה. יש כמה סוגים של הודעות שאפשר להשתמש בהם בממשקי API. |