לדלג לתוכן

0.3 ממשק אפליקציה API הרצאה

מבנה fullstack

בדרך כלל נהוג לחלק תוכנות לשני חלקים, ה״צד שרת״ (backend) ו-״צד לקוח״ (frontend)
כאשר צד לקוח (הfrontend) הוא הקוד שרץ אצל המחשב/טלפון של הלקוח, והצד שרת (הbackend) הוא קוד שרץ בשרת מרוחק.
לדוגמה: האפליקציות בטלפון שלנו הן קוד צד לקוח, בגלל שהקוד שלהן ממש רץ אצלנו בטלפון. לעומת זאת, ברוב האפליקציות אנחנו צריך גם קוד מרוחק (צד שרת) שמטרתו לנהל שירותים מסוימים באפליקציה- זהו קוד צד שרת.
נקח לדוגמה את האפליקציה יוטיוב- הקוד צד לקוח לא מספיק, אנחנו צריכים קוד צד שרת מרוחק, שרץ בשרתים שלנו ואחראי לנהל את המשתמשים ביוטיוב (לאפשר יצירת משתמשים והתחברות), לאפשר העלאת סרטונים למסד הנתונים של יוטיוב, לאפשר לאנשים לגשת לסרטונים של אנשים אחרים- ועוד המון.
השילוב של backend ושל frontend נקרא גם ״fullstack״ֿ
Pasted image 20251022201327.png
למעשה, קוד צד לקוח יכול להיות אפליקציה, תוכנה, משחק מחשב, או אתר אינטרנט.
באתרי אינטרנט הקוד צד לקוח קצת שונה, אתר אינטרנט לא עובד כמו תוכנה רגילה (אנחנו לא מורידים אותה מראש למכשיר שלנו)- למעשה כאשר אנחנו נכנסים לאתר הדפדפן שלנו פונה לשרתים של האתר כדי לקבל קוד שהדפדפן שלנו מריץ על המכשיר שלנו (הקוד צד לקוח), ועדיין, גם הוא צריך לגשת המון פעמים לצד השרת.
אם נחזור לדוגמה שלנו יוטיוב, ליוטיוב יש את הbackend שלהם, ויש להם כמה צדדי לקוח שונים, תוכנה, אתר ואפליקציה וכולם משתמשים באותו צד שרת מאחורי הקלעים.
Pasted image 20260127114530.png
עכשיו יש לנו קצת הבנה על מה זה full-stack וכיצד תוכנה מודרנית נראית.

אתר אינטרנט

אז איך אתרי אינטרנט עובדים?
הfrontend הוא קוד javascript+html+css שנמצא על שרת מרוחק, שמחכה שדפדפנים יפנו אילו בפרוטוקול http. כאשר המשתמש פונה לשרת הfrontend שלנו עם הדפדפן, הדפדפן מבצע בקשת GET על נתיב /ֿ, השרת יחזיר לו את הקוד javascript, html, css של העמוד הראשי והדפדפן יציג לנו את העמוד באמצעות הקבצים שקיבל מהשרת frontend שלנו.
פרקטית, הנה דוגמאות לבקשות http שהדפדפן יכול לעשות לשרתי frontend:

GET /
GET /login
GET /video/143423353

הדפדפן יודע לפרסר javascript, html, css וממש להציג בצורה גרפית את האתר.
פתחו את www.google.com ולחצו על ctrl + shift + i, תפתח לכם חלונית שבה תוכלו לראות את קוד הjavascript, html ו-css שממש הדפדפן מריץ כדי להציג את האתר שמולכם.
Pasted image 20251110090558.png
לסיכם, שרתי frontend של אתרים הם השרתים שאילו הדפדפן שלנו פונה כדי לקבל את הhtml + css ו- javascript של האתר, וכך הדפדפן שלנו יודע להציג לנו את האתר עצמו.
Pasted image 20260127115421.png

הapi

כמובן, שהאתר שאנחנו מריצים בדפדפן שלנו יפה והכל- אבל זה לא מספיק. מה אם נרצה שמשתמש באתר יגש למסד נתונים? ירשום תגובה לפוסט, יתחבר לעמוד האישי שלו או כל דבר אחר? פה בדיוק נכנס הbackend.
הbackend הוא קוד שיודע לבצע את כל הפעולות שנגדיר לו, מול המסד נתונים או כל דבר אחר- ומייצא את כל הפעולות האלו למשתמש באמצעות שרת http- אנחנו קוראים לשרת הזה api. (זה שרת נפרד מהfrontend בדרך כלל)
דוגמה לבקשות api

POST /login
{
    username=amit
    password=123
}

POST /video/upload
{
    url=https://youtu.be/dQw4w9WgXcQ?si=a5cQ54WX9QW9aS5T
    name=kittens
}

GET /health_check

כלומר, בזמן ששרת frontend מחזיר עמודי html וjava script באמצעות פרוטוקול http,
שרת backend מבצע פעולות שהמשתמש מבקש ומחזיר תשובות json, xml, או טקסט באמצעות פורטוקול http.
Pasted image 20251102172858.png
לרוב נראה, שקוד הjavascript שרץ בדפדפן שלנו (שאותו קיבלנו משרת הfrontend). יפנה בעצמו לשרת הbackend (דרך הapi) כדי לבצי פעולות כלשהן.
לדוגמה, אם יש כפתור של כתיבת תגובה לפוסט באתר, מאחורי הקלעים כאשר נלחץ על הכפתור- יהיה קוד javascript שרץ אצלנו בדפדפן שיודע לפנות לbackend בפורטוקול http וידע להגיע לapi שמטפל בתגובות לאתר.
Pasted image 20260127120642.png

בקורס זה נלמד כיצד לבנות קוד backend- ואיך לייצא אותו באמצעות api, לא נתעסק באיך כותבים קוד frontend ואיך frontend פונה לapi.
כאשר אנחנו כותבים api וקוד backend- כל סוג של קוד frontend יכול לפנות אילו, אתר, אפליקציה, תוכנה, או סקריפט פייתון.
בעתיד, יהיו קורסים גם על כיצד לפתח אתרים, תוכנות, משחקי מחשב, וכו.