
WebApplication.CreateBuilder מייצרת אובייקט builder, שעליו אפשר להגדיר כל מיני הגדרות (שירותים, hosting, configuration) לפני שקוראים ל-Build שבונה בפועל את האפליקציה (app) - זה דגם עיצוב (Design Pattern) הנקרא Builder.app משתמשים בפקודות MapGet, MapPost, MapPut, MapPatch, MapDelete - אחת לכל method - כדי "למפות" צירוף של route ו-method לפונקציה (lambda expression) שתופעל כשמגיעה בקשה מתאימה.MapGet לנתיב /api/countries, כך שכל בקשת GET לנתיב הזה תפעיל פונקציה שמחזירה את Repository.countries.Properties > launchSettings.json אפשר להגדיר את launchUrl כך שהריצה תפתח אוטומטית בנתיב api/countries במקום בנתיב של דוגמת Weather Forecast הישנה.Console.WriteLine בתוך הפונקציה כדי לראות בקונסול שהבקשה אכן הופעלה - כלי נוח לבדיקה בזמן הפיתוח.הטקסט המלא של הדקות הראשונות בהרצאה «החזרת מערך ב-JSON» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
דבר ראשון שאנחנו רוצים להחזיר מהREST API הזה, זה את רשימת כל המדינות. הריפוזיטורי הזה שבנינו זה כאילו מדמה לנו באמת דטאבייס. בגלל שאנחנו לא רוצים להתעסק כרגע בדטאבייס כי אנחנו בונים משהו מאוד בצומצם, אז הנה יש לנו את הרשימה מוכנה פה.
איך בונים את זה? יש לנו כאן את המיין, וזאת הפונקציה הראשונה שעולה. הדבר הראשון שאנחנו רואים זה ב... בעצם מחלקה פנימית שקיימת פה ב-REST API, זה שנקרא Web Application, והיא מייצרת אובייקט בילדר.
היא מקבלת את הפרמטרים של המיין, והיא מייצרת לנו בילדר. בילדר זה מעין דיזיין פאטרן כזה, דיזיין פאטרן זה מבנה כזה של קוד, זה נקרא תבניות עיצוב, אבל זה מבנה של קוד, שנותן מענה לצורך מסוים.
בילדר דיזיין פאטרן, זה מצב ש... ובו אני יוסר אובייקט שנחשב בילדר, ואז אני נותן לו כל מיני הגדרות, כאן, כל מיני הגדרות, מה אני רוצה שיקרה איתו, מה אני רוצה שהוא יעשה, בלה בלה בלה, ואז בבת אחת אני אומר לו, בילד, בוא תבנה עכשיו את ה...
לא יודע, whatever, כרגע הוא בונה לי את האפליקציה עצמה. אין לנו כרגע יותר מדי הגדרות שאני נותן לבילדר, בהמשך כמובן יהיה, אז אני לא מתעסק כרגע עם הגדרות שאני רוצה לתת לבילדר, אבל אם אתם רושמים פה נקודה, אתם רואים שיש לו כל מיני אפשרויות.
של מה אנחנו יכולים לתת לו, איזה סרוויסס אנחנו יכולים להוסיף, וכל מיני דברים שקשורים ל-hosting, ו-environment, ו-configurations וכדומה, ואז בבת אחת אנחנו אומרים לו, טוב בוא תבנה לי עכשיו את האפליקציה שהיא ה-REST API, זה קונספט שנקרא Builder Design Pattern, אז הם עובדים עם הקונספט הזה, ואז אנחנו
בונים את ה-app, זה ה-REST API שלנו, ואנחנו עוד כאן יכולים לתת מידע שקשור יותר ל-REST API, על ידי up נקודה, ומה שאנחנו רוצים לתת לו זה map, ויש לנו map get, map post, map put, map patch, map delete, זאת אומרת כל המטוד שלמדנו עליהם, אנחנו יכולים להגיד לו כאן, עכשיו למה הם בחרו את
המילה map, to map something זה למפות משהו, זאת אומרת שאנחנו רוצים נניח לגשת למפ get, ולבוא למפ get ולהגיד תקשיב, אם גולשים ב get, את request ל-route שאתה כותב כאן, פה אנחנו רוצים לכתוב את ה-route, אז תפעיל פונקציה שנמצאת פה, שאנחנו רוצים לתת לו.
אז אנחנו כאילו ממפים איזשהו route ומתוד, לפונקציה ספציפית שאנחנו רוצים לתת. אז קודם כל בואו נחשוב על איזה route, route זה הכתובת הפנימית אליה היוזר גולש. אז אנחנו רוצים למפות את זה ל...
פאטרן הבא, slash API, כי אמרנו שנהוג ש-rest API הראה אותי מתחיל ב-API, ו-slash countries, זאת אומרת שאם גולשים לנו ל-API countries, אז אנחנו בעצם רוצים להחזיר את כל המדינות, אז אנחנו שולחים כאן פונקציה, הנה פונקציה, lambda expression כזאת, והפונקציה הזאת תתבצע ברגע שהגלשו
ב-get request לנתיב הזה. בואו נעשה... דמו, אני רוצה רק להחזיר משהו return test בצורה כזאת נשמור ונריץ פה אני מחזיר בעצם את מה שאני רוצה שיחזור בחזרה למי שקרא לי אז שימו לב קודם כל שהפרויקט יודע לגלוש ל-low world הזה שהם בנו, weather forecast
שזה בכלל לא הנושא שלנו תכף נשנה את זה ונגיד לו לגלוש אוטומטית לזה אז בואו נלך לכתובת הראשית המספר