PracticU

יצירת פרויקט REST API מלא
עבור חנות ספרים

בלי כתוביותעם כתוביות
PracticU › קורס דוט-נט - NET Core. - עם Rest API › יצירת פרויקט REST API מלא עבור חנות ספרים
יצירת פרויקט REST API מלא עבור חנות ספרים
בניגוד לפרויקט המינימלי מהמודול הקודם, כאן יוצרים פרויקט REST API "מלא" - עם חלוקה לאזורים (תיקיות) - לקראת בניית חנות ספרים שמתחברת לדאטהבייס.
השלבים העיקריים
1. יצירת הפרויקט: ב-Visual Studio בוחרים Create a New Project, שפת C#, ASP.NET Core Web API, נותנים שם (Bookstore REST API) ובוחרים את גרסת .NET העדכנית ביותר.
2. אפשרויות היצירה: כמו קודם מסמנים Do not use top-level statements, אבל בשונה מהפרויקט המינימלי כן מסמנים Use controllers - כך מתקבל מבנה מבוסס Controllers, לא Minimal API.
3. הגדרת Namespace אחיד: דרך Properties של הפרויקט מגדירים Default Namespace משותף לכל המחלקות.
4. ניקוי קוד ברירת המחדל: מסירים את קוד הדוגמה (Weather Forecast) ואת השימוש ב-HTTPS redirection וב-Authentication, שלא נדרשים כרגע, ומשאירים רק את המינימום הדרוש כדי שהפרויקט ירוץ.
5. בניית מבנה תיקיות (Directory Structure): מוסיפים לפרויקט תיקיות ממוספרות לפי רמת הבסיסיות שלהן - Assets (תמונות, קול, גופנים וכדומה), Utils (פונקציות עזר קטנות), Models (מחלקות דאטה טהורות), Services (לוגיקה כבדה יותר, כמו גישה לדאטהבייס), Controllers (האזור שהפרונטנד גולש אליו ושמנתב את הבקשות למקום המתאים), ו-Middleware (פונקציות שרצות אוטומטית בין קבלת הבקשה להחזרת התשובה).
שימו לב
חלוקה לתיקיות לפי תחום אחריות (Models, Services, Controllers וכדומה) היא דרך מקובלת לארגן פרויקט REST API גדול יותר מהפרויקט המינימלי שנבנה קודם, ומקלה על ניהול הקוד כשהוא גדל.
בסיום ההרצאה יש פרויקט נקי עם מבנה תיקיות מוכן, מוכן להתחיל להתחבר לדאטהבייס ולבנות את חנות הספרים.
השיעור הבא בקורס: יצירת מחרוזת התחברות למסד הנתונים

פרקי ההרצאה: יצירת פרויקט REST API מלא עבור חנות ספרים

  1. 00:00

    מתי לבנות REST API מלא

  2. 00:38

    יצירת פרויקט Web API

  3. 01:53

    שימוש ב-Controllers

  4. 03:05

    סקירת קובץ ה-Program

  5. 04:54

    מבנה תיקיות הפרויקט

  6. 05:46

    תיקיות Assets ו-Utils

  7. 06:26

    תיקיות Models ו-Services

  8. 07:01

    תיקיית Controllers

תמלול ההרצאה: יצירת פרויקט REST API מלא עבור חנות ספרים

הטקסט המלא של הדקות הראשונות בהרצאה «יצירת פרויקט REST API מלא עבור חנות ספרים» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

    במודול הקודם בנינו Rest API מינימלי. Rest API מינימלי אנחנו נבנה כאשר אין לנו הרבה קוד, או ללתר דיוק יש לנו מעט קוד. אין לנו גישה למסדי נתונים, אין לנו אזורים שונים, אין לנו המון חישובים, יש לנו משהו מצומצם, אולי אני מביא איזה מידע מאיזה ריפוזיטורי מקומי, כמו שהיה לנו אולי מאיזה

  2. 00:22

    קובץ מקומי, אולי אני עושה איזה חישוב מהיר. אם אנחנו רוצים לבנות Rest API מסיבי או לפחות שניגש לדטאבייס ויש לו כל מיני פעולות שקשורות לדטאבייס, אנחנו לא נבנה אותו כ-minimal rest API, אנחנו נבנה אותו כ-rest API מחולק לאזורים, בואו נראה איך אנחנו עושים את זה.

  3. 00:41

    דבר ראשון, בואו נפתח את Visual Studio, נבצע create new project, אנחנו רוצים כמובן את שפת C Sharp, אנחנו רוצים כאן Web API, לבחור asp.net core, Web API, נבצע next.

  4. 00:56

    בואו נבנה איזשהו REST API שמתעסק בחנות ספרים, בואו נקרא לו Bookstore REST API, נמצאנו בתיקייה C Projects, האם אנחנו רוצים to place solution and project in the same directory?

  5. 01:10

    לא, כי אולי נוסיף עוד פרויקטים שקשורים לאותה חנות ספרים, בואו נבצע Next, אנחנו נרצה לבחור את הגרסה החדשה ביותר של.NET Core, מיכה ב-HTTS זה תמיד טוב, אנחנו לא נתעסק הרגע עם...

  6. 01:26

    docker enable open api support זה נקרא swagger זה משהו שנראה אותו בהמשך אבל אנחנו לא נאפשר אותו כרגע אנחנו לא רוצים שהוא יוסיף לנו כל מיני דברים בקוד כרגע נבין בהמשך מה זה do not use top level statement אני תמיד אוהב לסמן את זה כי אני לא אוהב להתעסק עם top level

  7. 01:47

    statement זה אומר שיהיה לי מחלקה פרוגרם יהיה לי פונקציית main אני ידע איפה התוכנית מתחילה ואנחנו בהחלט רוצים לסמן useController. useController זה אומר שאנחנו לא בונים מינימל API, מינימל REST API בואו נבצע create יש לנו כאן פרויקט שנפתח לנו, נפטר מהWelcome Page הזה ובואו נראה איך אנחנו עושים setup

  8. 02:12

    לפרויקט ומכינים אותו כמו שצריך הדבר הראשון שהייתי מבצע זה משנה את הnamespace של כלל הפרויקט בואו ניגש לכאן Properties על הפרויקט עצמו יש לנו כאן...

  9. 02:26

    default namespace, נגדיר practic-u בתור הנמספייס שעוטף לנו את כל המחלקות, ביי. הדבר הבא שאנחנו רוצים זה להיכנס לאחת המחלקות ולשנות לה את הנמספייס באופן גורף לכולם, וזה כמובן יהיה הנמספייס שהגדרנו מקודם, בואו נבצע, rename, וכעת אם אנחנו מסתכלים

  10. 02:46

    על מקומות אחרים, אנחנו רואים שהנמספייס תפס בכל מיני מקומות אחרים. אנחנו רוצים נקודה פסיק, אני אוהב לשים את זה בצורה כזאת, פחות indent. פחות מה שנקרא תאבים והזזות של דברים ימינה.

  11. 03:00

    זאת המחלקה פרוגרם, הנה המיין שלנו, מה אנחנו בעצם רוצים שיהיה כאן? אנחנו רוצים שיהיה את הבילדר שמאפשר לבנות את המערכת, נפטר מתיעוד כרגע. יש לנו כאן את הפונקציה הזאת, add controllers, אנחנו נראה בהמשך מה זה קונטרולר, הנה מתחבא פה משהו שקשור לקונטרולרים, נדבר על זה במודול.

  12. 03:23

    יש לנו פה יצירה של. אובייקט up, יש לנו פה פקודה שנקראת use HTTPS redirections. אם אנחנו מריצים את הפרויקט על HTTPS נניח באוויר, ויש לנו כתובת שרצה על HTTPS ויוזר גולש בטעות ל-HTTP או לא בטעות ל-HTTP, אז הפקודה הזאת פשוט תפנה אותו לכתובת של HTTPS.

  13. 03:44

    אני לא רואה כרגע צורך להריצה את הפרויקט על HTTPS, כי הוא יבקש ממני כל מיני בקשות של תעודה דיגיטלית וכדומה, אז אני אעביר אותו ל-HTTP. אפשר כמובן להריץ אותו על HTTPS ולהגיד לו, תתעלם, תריץ, דיברנו על זה, HTTPS זה פשוט secured, כאשר הפרויקט באוויר, הוא די חייב להיות על HTTPS, או די נכון שהוא יהיה על HTTPS,

  14. 04:07

    בזמן הפיתוח אין בעיה להריץ את זה על HTTP. אז הפקודה הזאת פשוט מפנה HTTP ל-HTTPS עבור גלישה של HTTPS. User authentication נדבר בהמשך, אני מוריד את זה כרגע, אנחנו לא צריכים, ו-map controllers אנחנו כן צריכים.

  15. 04:22

    נדבר בהמשך מה זה, פשוט אני עושה setup כרגע לדברים המינימליים שצריך, דרך אגב את זה אני לא חייב כרגע, כי אני מריץ את זה על http, יאללה בואו ניפטר ממנו, אם נצטרך להריץ את זה על https, נחזיר.

  16. 04:35

    יופי, אז בכוונה עשיתי את המינימום שדרוש פה main, הדבר הבא שאנחנו רוצים זה להיפטר מכל מיני קודים, שנתנו לי כמו weather, forecast, ה-low world שלהם, שראינו בהם בעבר, בואו ניפטר מזה, בואו ניפטר מהcontent, שנתעסק עם תחזית מזג אוויר.

  17. 04:54

    הדבר הבא שאנחנו רוצים לעשות זה להבין איזה directory structure כדאי לבנות בפרויקט REST API שהוא לא מינימל REST API. אז יש לנו פה סדרה של אזורים.

  18. 05:10

    אזור אני מגדיר בתור תיקייה משלו, שמכיל דברים שקשורים רק לאזור הזה או רק לתחום האחריות הזאת. אז אנחנו פשוט מוסיפים תיקיות לפרויקט. אני אוהב להגדיר את התיקיות שיתחילו עם מספרים, בגלל שככל שהתיקייה היא יותר בסיסית או מכילה דברים תשתיתיים יותר או בסיסיים יותר, אני אוהב לראות אותה יותר למעלה.

  19. 05:33

    אני אוהב ככה לראות את זה. אתם לא חייבים, אתם יכולים לתת שמות איזה שאתם רוצים לתיקיות האלה. אני כמובן אגדיר אותן במספרים, אז התיקייה הראשונה שאני אוהב להגדיר זה assets.

  20. 05:43

    כמובן המספרים מגדירים שככל שהמספר קטן יותר זה יהיה למעלה. assets זה כל התמונות, sound, video, גופנים, כל מיני דברים שאני רוצה, קבצים שאני רוצה להשתמש איתם בפרויקט שלי, אז אני מגדיר אותם כassets.

  21. 05:57

    התיקייה הבאה שאנחנו רוצים להגדיר נקראת... Utils זה עזרים קטנטנים אולי אני רוצה איזה מחלקה קטנה שמתעסקת עם מספרים אולי אני רוצה מחלקה קטנה שמתעסקת עם מכרוזות או עושה כל מיני פעולות על מכרוזות כל מיני עזרים קטנים Utilities זה פשוט עזרים משהו שעוזר לי בקטנה התקיעה הבאה שאנחנו רוצים נקראת

  22. 06:23

    Models Models אלה המחלקות המידע הטהור שיש לנו, אם אני מתעסק כמו שראינו עם country, אז אולי תהיה לי מחלקה שמתארת country, ואני ארצה שהיא תהיה במודל, כי היא מתארת מידע טהור.

  23. 06:36

    המחלקה הבאה שאנחנו רוצים, או יותר דיוק התיקייה הבאה, נקראת services. Services זה הפעילויות הלוגיות שיש, ונפרד מ-utilities. Utilities יכול להכיל גם לוגיקה, אבל ממש קטנטנה שעוזרת בכל מיני מקומות.

  24. 06:52

    Services זה כבר לוגיקה יותר כבדה. שירותים יותר כבדים של לדוגמה גלישה לדטאבייס או ביצוע חישובים יותר מסיביים זה יהיה Services התקיעה הבאה שאנחנו רוצים להוסיף זה Controllers האמת יש כבר תקיעה כזאת הנה אז אנחנו פשוט נגדיר אותה כ-5 Controllers מה זה Controllers?

  25. 07:15

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

  26. 07:37

    גולש לקונטרולר ואז הקונטרולר פונה למקום המתאים בסרוויס, והסרוויס פונה לדטאבייס, מביא לו את הדברים שקשורים לספרים או את כל הספרים, והקונטרולר מחזיר אותו ליוזר, זה הבקר, זה מנתב את הגלישות ועושה את הניתובים השונים.

  27. 07:53

    התקיעה הבאה שאנחנו רוצים נקראת middleware. middleware זה פונקציות שמתבצעות אוטומטית בין גלישה של

ההרצאה הקודמת: התקנה ושימוש ב-Postman - לבדיקת ה-REST API

ההרצאה הבאה: יצירת מחרוזת התחברות - למסד הנתונים

הרצאות קשורות מקורסים אחרים

  • יצירת מסד נתונים - של חנות בגדים
  • יצירת שירות Web API
  • יצירת AWS Security Group - עבור RDS - פרויקט NodeJS
  • יצירת עמוד עבור המוצר

קורסים נוספים במסלול

  • קורס Entity Framework Core - עבודה עם מסד נתונים בדוט-נט
  • קורס ASP.NET
  • קורס MVC
  • קורס Git ו-GitHub עם Visual Studio