שגיאות
כל שגיאה של v2 API (בתחום api/v2/*) מעובדת למעטפת אחת ויציבה. כך לקוחות יכולים להסתעף לפי code קריא-מכונה במקום לנתח טקסט חופשי.
מעטפת השגיאה
json
{
"error": {
"code": "validation_failed",
"message": "The given data was invalid",
"status": 422,
"details": [ ... ]
}
}| Key | סוג | תיאור |
|---|---|---|
code | string | קוד שגיאה יציב וקריא-מכונה (ראו טבלה בהמשך). |
message | string | תיאור קריא-אנוש. |
status | int | קוד סטטוס HTTP, זהה לסטטוס התגובה. |
details | array/object | אופציונלי. מידע ברמת השדה. מושמט לחלוטין כשהוא ריק (מפתחות עם ערך null מוסרים מהמעטפת). |
שדה ה-details בשגיאות ולידציה
כאשר נזרקת ValidationException של Laravel, details הוא רשימה של אובייקטים לכל שדה:
json
{
"error": {
"code": "validation_failed",
"message": "The given data was invalid",
"status": 422,
"details": [
{ "field": "recipient_phone", "issues": ["The recipient phone field is required."] }
]
}
}שגיאות שנזרקות ישירות על ידי ה-API (למשל מקרה ריבוי הרישיונות) עשויות לשאת במקום זאת מפה ממופתחת ב-details — ראו רישיונות.
קודי שגיאה
| code | Status | משמעות |
|---|---|---|
unauthenticated | 401 | פרטי לקוח חסרים או שגויים. ראו אימות. |
forbidden | 403 | מאומת, אבל אסור: רישיון לא בבעלותכם, לא פעיל, פג תוקף, או שאין רישיון פעיל. |
package_limit_reached | 403 | מכסת המשלוחים של המנוי בחשבון (max_no_of_shipping) מוצתה. |
not_found | 404 | המשאב לא נמצא. מוחזר גם עבור נתיבים לא מוכרים ומודלים חסרים. |
validation_failed | 422 | נתוני הבקשה נכשלו בוולידציה; ראו details. |
duplicate_request | 409 | בקשה תואמת כבר נמצאת בתהליך. |
idempotency_key_conflict | 409 | נעשה שימוש חוזר ב-Idempotency-Key עם גוף בקשה שונה. |
carrier_error | 424 | חברת השליחויות במעלה הזרם לא הצליחה לעבד את הבקשה. |
server_error | 500 | שגיאת שרת בלתי צפויה. בסביבת production ההודעה ממוסכת ל-An unexpected error occurred. |
error | אחר | ברירת מחדל לכל חריגת HTTP אחרת; status משקף את הסטטוס של אותה חריגה. |