PracticU

קבלת נתונים מ-Database
דוט נט NET Core.

בלי כתוביותעם כתוביות
PracticU › קורס דוט-נט - NET Core. - עם Rest API › קבלת נתונים מ-Database דוט נט NET Core.
קבלת נתונים מ-Database דוט נט NET Core.
אחרי שה-Dependency Injection מוגדר, אפשר לשלוף ספרים מהמסד, להחזיר אותם מה-Controller עם סטטוס קוד, לבדוק ב-Postman ולשחרר משאבים עם Dispose.
השלבים העיקריים
1. פונקציה ב-Service: ב-BooksService מוחקים את פונקציית הבדיקה ובונים GetAllBooks שמחזירה List<Book>, באמצעות _db.Books.ToList().
2. פונקציה ב-Controller: מוסיפים GetAllBooks עם הנתיב api/books שקוראת ל-Service. הבדפדפן מציג מערך ריק כי אין בטבלה ספרים.
3. הוספת נתונים ידנית: ב-SSMS, ב-Edit, מוסיפים שלושה ספרים (C Sharp for Beginners ב-100, Entity Framework Core ב-120, NET Core for beginners ב-150). הרשימה חוזרת כ-JSON, והמערכת ממירה אותה אוטומטית.
4. IActionResult: במקום להחזיר את הדאטה ישירות, מחזירים IActionResult, שיכול להחזיק גם דאטה וגם סטטוס קוד. הקריאה Ok(books) מחזירה את הרשימה עם 200.
5. בדיקה ב-Postman: הדפדפן מוגבל ואינו מבצע post, put, patch ו-delete. יוצרים Collection בשם Bookstore Rest API עם Request בשם Get All Books, ומייצאים אותו לתיקיית הפרויקט.
6. בלי דפדפן בהרצה: ב-Launch Settings מגדירים launch browser ל-false, כך ש-Ctrl+F5 מריץ רק את הקונסול.
7. Dispose: ל-Context יש Dispose לשחרור משאבים. לא יוצרים אותו בעצמנו כך שאין using, ולכן BooksService מממש IDisposable וקורא ל-_db.Dispose().
8. ה-Controller: ControllerBase אינו מממש IDisposable, ולכן ה-Controller מממש אותו בעצמו וקורא ל-Dispose של ה-Service. כש-NET. משחררת את ה-Controller, השרשרת משחררת את ה-Context.
פקודות והגדרות
- _db.Books.ToList()
- Ok(books)
- launch browser = false
בסוף יש תשתית שניגשת למסד, מחזירה את כל הספרים ומשחררת את המשאבים.
השיעור הבא בקורס: קבלת נתון ממסד נתונים דוט נט NET Core.
מילון מושגים:
Postman – כלי לבדיקת API: שליחת בקשות HTTP לשרת ובחינת התגובות, נפוץ בפיתוח ובבדיקות.
SSMS – הכלי הגרפי של מיקרוסופט לניהול SQL Server ולהרצת שאילתות (SQL Server Management Studio).
Entity Framework – ספריית מיקרוסופט שממפה בין אובייקטים בקוד לבין טבלאות במסד נתונים, ומאפשרת לעבוד עם הנתונים בלי לכתוב SQL ישיר.
POST – שיטת HTTP לשליחת נתונים לשרת כדי ליצור או לעדכן משאב, למשל שליחת טופס.
PUT – שיטת HTTP לשליחת נתונים לשרת כדי ליצור או להחליף משאב קיים במלואו.
עדכון אבטחה – עדכון תוכנה ממוקד שמתקן תקלה או סוגר חולשת אבטחה בגרסה קיימת.
REST – סגנון לבניית ממשקי API מעל HTTP, המבוסס על משאבים ועל שיטות סטנדרטיות כמו GET ו-POST.
GET – שיטת HTTP לבקשת מידע מהשרת בלי לשנות אותו; הפרמטרים מועברים בדרך כלל בכתובת.

פרקי ההרצאה: קבלת נתונים מ-Database דוט נט NET Core.

  1. 00:00

    בניית פונקציית Get All Books

  2. 00:57

    הגדרת הפונקציה בקונטרולר

  3. 01:56

    הוספת ספרים לדטאבייס

  4. 02:58

    Status Code והחזרת JSON

  5. 03:50

    החזרת IActionResult עם Ok

תמלול ההרצאה: קבלת נתונים מ-Database דוט נט NET Core.

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

  1. 00:02

    אחרי שהגדרנו את ה-dependency injection כמו שצריך, אנחנו יכולים לפנות לדטאבייס. אנחנו לא צריכים כבר את הפונקציה הזאת get some data, זה היה רק לצורך בדיקה. בואו נבנה פונקציה שפשוט מחזירה את כל הספרים.

  2. 00:19

    אנחנו נמצאים ב-books service, פה אנחנו רוצים לבצע את הלוגיקה, והפונקציה שלנו צריכה להחזיר list מסוג book, get all books, תביא לי בבקשה את כל הספרים.

  3. 00:30

    ואנחנו רוצים to return, ניגש ל-db שכבר יש לנו אובייקט ממנו, נקודה, אוסף הספרים, ונהפוך אותו ל-list, והנה סיימנו את הפונקציה בסרוויס של סייטלוגיקה.

  4. 00:43

    הדבר הבא שאנחנו רוצים, בואו נשים את זה רגע side by side, זה ללכת לקונטרולר ולהגדיר פונקציה מתאימה. בקונטרולר בואו נבנה פונקציה, בעלת אותו השם, ניקח getAllBooks, זאת הפונקציה, במקום ה-test שיש לנו פה, הראוט שנרצה זה API Books, כפי שלמדנו בעולם ה-Rest API, זה יביא לי את כל הספרים.

  5. 01:07

    כל מה שאנחנו רוצים לעשות זה לגשת ולהחזיר. כרגע נחזיר List Book בצורה כזאת. יש לנו כאן את כל ה-Books, והפונקציה שאנחנו רוצים לקרוא לה היא Get All Books. בואו נחזיר את כל הספרים, נבצע גלישה.

  6. 01:28

    זה אמור להיות רק list, book, מעולה, נריץ, Ctrl F5, אנחנו רואים שהוא עדיין גולש לטסטינג, אני רגע אסגור, בואו נחזור לפה, ונגיד לו, תקשיב, זה טסטינג היה לבדיקה, אחלה, בואו תגלוש ל-API books, במקום טסטינג, נריץ שוב, ואנחנו רואים כרגע מערך רק, כי בדטאבייס אין ספרים.

  7. 01:54

    טוב, בסדר, לא קרה כלום, בואו ניגש לדטאבייס, Edit, אנחנו רוצים להוסיף את C Sharp, C Sharp for Beginners, Price 100, הלאה, בואו נוסיף את Entity Framework, Description, Entity Framework Core for Expert, בואו נגיד From Beginners to Expert, Price 120.

  8. 02:25

    בואו נלך לספר השלישי. ניקח את.NET Core, ויש לנו פה את.NET Core for beginners, וזה עולה 150. הנה יש לנו פה שלושה ספרים, ומה שאנחנו רוצים לעשות זה שוב פעם לבדוק את זה, בואו נחזור בחזרה, נריץ, go go go, הנה יש לנו רשימה של ספרים, בדיוק כמו שאנחנו רוצים, מחזיר לנו JSON, אוטומטית המערכת הופכת את

  9. 02:58

    ה-list ל-json, ונראה שהכל עובד. מה אנחנו בעצם מחזירים? אנחנו מחזירים list. אוקיי, מה בקשר ל-status code? status code אוטומטית הוא היה 200, בסדר, אבל אם אני ארצה בהמשך status code אחר, אם אני ארצה בהמשך להחזיר הודעת שגיאה, במקום כל הספרים, מה בעצם אני אמור לעשות?

  10. 03:18

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

  11. 03:38

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

  12. 03:50

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

  13. 03:58

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

  14. 04:11

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

  15. 04:36

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

  16. 04:53

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

לקורס המלא: קורס דוט-נט - NET Core. - עם Rest API

ההרצאה הקודמת: הסבר על Dependency Injection

ההרצאה הבאה: קבלת נתון ממסד נתונים - דוט נט NET Core.

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

  • ייבוא נתונים - ישירות ל-Database חדש
  • הסבר על Console - דוט-נט Framework vs Core
  • הסבר על WinForms - דוט-נט Framework vs Core
  • יצירת שאילתות View - דוט-נט Core

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

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