חזית ואחורי
הוצג| English | משמעות |
|---|---|
| request/rɪˈkwest/ | בקשה |
| front end/frʌnt end/ | חזית |
| back end/bæk end/ | גב |
| server/ˈsɜːvə/ | שרת |
| response/rɪˈspɒns/ | תגובה |
| API/ˌeɪ piː ˈaɪ/ | ממשק תוכנת אפליקציה |
| JSON/ˈdʒeɪsn/ | JSON |
למדן משנה את המספר בכתובת האתר
- עמוד קורס מבקש
/students/42/courses. מבקר משנה את 42 ל43. הסתרת הקישור על המסך אינה מונעת את הבקשה. - החזית מציגה את הממשק. הגב פועל על שרת ועובד על בקשה לפני שולח תגובה.
הסכם על משמעות כל בקשה
- API מגדיר כיצד תוכנה תקשורת. חוזה קובע את השיטה, הדרך, הקלט, המזמין המותר, שדות התגובה והתנהגות בכשל.
- לרשימת קורסים לסטודנטים בלבד, השרת זיהוי המזמין ובדיקת רשות. מספר המסופק על ידי הדפדפן אינו הוכחה לזהות.
הדפדפן מבקש רשימת 43 סטודנטים. מה מוכיח שהקורא עשוי לקרוא ברשימה זו?
Difficulty 1/5 · 100 coins + a small bonus on first completion today
מזהה (ID) בוחר משאם; הוא אינו הוכחה למזהות או לאישור גישה.
קראו את התגובה כנתונים
- JSON יכול לייצג אובייקטים, מערכים, מחרוזות, מספרים, בוליאנים ו-null. הוא נפוץ באפליקציות ממשק תכנות (APIs) ברשת, אך לא כל תגובה משתמשת בו.
- רשימה מוצלחת עשויה להיות
[{"course_id":7,"title":"Robotics"}]. רשימה רשותית ריקה עשויה להיות[]; שני התוצאות אינן מורידות לדפדפן לבצע קוד.
איזה פורמט נתונים נפוץ מיוצג על ידי [{"course_id":7,"title":"Robotics"}]?
Difficulty 1/5 · 100 coins + a small bonus on first completion today
זו JSON: מערך המכיל אובייקט.
שימו כל חוק במקום שבו ניתן להטיל אותו
- אימות בדפדפן מספק משוב מהיר, אך השרת חייב לבדוק את הקלט ואת הרשות בצורה עצמאית. ייתכן שהקורא ישלח בקשות ללא שימוש בטופס שלכם.
- שמרו סיסמאות למאגר נתונים ותעודות מפתחות API פרטיות על השרת. ייתכן שמשתמש יציב סיסמת כניסה בדפדפן; העבירו אותה באופן מאובטח ואף אל תש插入 תעודת שירות פרטית בקוד הניתן להורדה.
איפה יש לאחסן סיסמת מאגר נתונים פרטי שמשתמשת בה האפליקציה?
Difficulty 1/5 · 100 coins + a small bonus on first completion today
ניתן לבצע בדיקה על קוד הניתן להורדה. יש לשמור על הסמכות שירותים פרטיים על השרת.
השרת צריך לבצע בדיקות קלט עצמאיות גם כאשר הטופס מאמת את הקלט.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
קורא יכול לעקוף את הטופס ולשלוח בקשה ישירות.
הסביר מדוע אימות בדפדפן אינו יכול להחליף בדיקות בשרת.
Difficulty 3/5 · 200 coins + a small bonus on first completion today
קורא יכול לשלוח בקשה ללא הטופס, ולכן השרת בודק אותה באופן עצמאי.
הצגו מצבי טעינה, הצלחה וכישלון באמת
- בעת המתנת הבקשה, הצגו מצב טעינה. לאחר ההצלחה, הצגו את הקורסים שהוחזרו או הודעת רשימה ריקה.
- בקשה שנכשלה זקוקה למצב כישלון שימושי. אל תסמנו כישלון רשת כ"אין קורסים": השרת לא אישר תוצאה ריקה.
התאם כל תוצאה לתצוגה כנה.
Difficulty 2/5 · 140 coins + a small bonus on first completion today
תוצאה שאישרה לא תוצג כרשימת הצלחות ריקה.
עקבו אחרי האינטראקציה כולה
- מעקב: בקשת דפדפן → בדיקות קלט ורשות בשרת → חיפוש נתונים מותרים → תגובה → תצוגת דפדפן. עצרו את החיפוש כאשר בדיקה נדרשת נכשלת.
- בדיקו קורא מורשה, קורא שנפסל, תוצאה ריקה ובקשה שנכשלה עם מדגימי מקומיים. אל תחשיפו נתונים של סטודנט אחר כדי לבדוק גישה.
הדפדפן עוזר למשתמש; השרת מטיל את החוק. זהות, רשות, קלט תקף וחירוש חיפוש מוצלחים הם בדיקות נפרדות.
סדרו את שלבי הבדיקה המותרת והמוצלחת הללו.
Difficulty 3/5 · 200 coins + a small bonus on first completion today
השרת מכפיף את הכלל לפני החזרת הנתונים הפרטיים.
כל תגובה של API ברשת חייבת להשתמש ב-JSON.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
JSON נפוץ, אך APIs יכולות להשתמש בפורמטים אחרים המוסברים בתיעוד.