🎯 מטרות המשימה
- מעבר מניהול שגיאות ידני לשימוש בחריגות (Exceptions).
- הטמעת Global Error Handler לריכוז התגובות ללקוח.
- הבטחת פורמט JSON אחיד לכל תקלה ב-API.
חלק 1 – ניתוח המצב הקיים
במשימת ה-TODO המקורית, בכל פעם שזיהיתם שגיאה (כמו משימה שלא נמצאה), החזרתם תשובה ידנית עם return jsonify(...).
המטרה כעת: להוציא את האחריות על "איך נראית התשובה" מה-Route עצמו.
חלק 2 – הנחיות לביצוע
1. עדכון הלוגיקה ב-Routes (ה-Raise)
עליכם לעבור על כל ה-Endpoints ב-API ולבצע את השינויים הבאים:
- במקום להשתמש ב-
return כאשר משימה לא נמצאת או כשהקלט לא תקין, עליכם להשתמש בפקודה raise.
- יש להשתמש בסוגי השגיאות המובנים של Werkzeug Exceptions (למשל:
NotFound עבור משימה חסרה, BadRequest עבור נתונים לא תקינים).
- בתוך הסוגריים של השגיאה, עליכם לספק תיאור טקסטואלי שמסביר את הבעיה (למשל: "לא סופק שדה כותרת").
2. יצירת מנגנון תפיסה מרכזי (The Handler)
עליכם להוסיף פונקציה אחת באפליקציה שתפקידה לטפל בכל השגיאות שנזרקו:
- השתמשו ב-Decorator המובנה
@app.errorhandler.
- הפונקציה צריכה לתפוס את השגיאה הגנרית
HTTPException.
- תפקיד הפונקציה: לחלץ את קוד השגיאה (Status Code) ואת התיאור (Description) מהחריגה שנזרקה, ולהחזיר אותם כ-Response בפורמט JSON בלבד.