PracticU

הוספת נתון חדש למסד נתונים

בלי כתוביותעם כתוביות
PracticU › קורס דוט-נט - NET Core. - עם Rest API › הוספת נתון חדש למסד נתונים
הוספת נתון חדש למסד נתונים
הוספת ספר חדש דרך ה-REST API: שמירה במסד בעזרת ה-Context, החזרת סטטוס 201 ובדיקה ב-Postman.
השלבים העיקריים
1. פונקציה ב-Service: AddBook מקבלת אובייקט Book, מוסיפה אותו עם _db.Books.Add, ואחר כך SaveChanges. ההוספה לבדה נעשית רק מקומית ב-Context, והשמירה היא שכותבת למסד. הפונקציה מחזירה את הספר שכבר מכיל את ה-ID שהמסד יצר.
2. מתודה ונתיב: ב-Controller הפונקציה AddBook היא HttpPost לנתיב api/books, בלי ID, כי המסד יוצר אותו.
3. קבלת הספר מהבקשה: הפרמטר מסומן ב-[FromBody], והמערכת בונה אובייקט Book מה-JSON שבגוף הבקשה.
4. החזרת התשובה: שומרים את התוצאה ב-dbBook ומחזירים אותה עם Created ולא עם Ok, כדי לקבל סטטוס 201. ל-Created מעבירים כתובת שבה אפשר לראות את הספר החדש, כלומר api/books/ ואחריה ה-ID של dbBook, ואת האובייקט עצמו.
5. בדיקה ב-Postman: משכפלים Request בשם Add Book, משנים ל-post, ובלשונית Body בוחרים raw JSON. מעתיקים את ה-JSON של ספר קיים ומוחקים את ה-ID. בדוגמה נשלח "HTML for beginners" במחיר 55.
6. אימות: מתקבל 201 Created עם ID חדש, ואחרי רענון ב-SSMS מופיע הספר הרביעי. Postman לא מציג את הכתובת שנשלחה ב-Created, וזה בסדר.
פקודות והגדרות
- _db.Books.Add(book) ואחריה _db.SaveChanges()
- [HttpPost] ו-[FromBody]
- Created(...)
אפשר עכשיו להוסיף נתונים חדשים למסד דרך ה-API.
השיעור הבא בקורס: עדכון מלא ב-SQL Database

פרקי ההרצאה: הוספת נתון חדש למסד נתונים

  1. 00:00

    בניית פונקציית Add Book

  2. 00:39

    שמירת השינויים ב-SaveChanges

  3. 01:14

    קבלת הספר מה-Body

  4. 02:31

    החזרת Created וסטטוס 201

  5. 03:06

    ציון כתובת הספר החדש

  6. 04:01

    בדיקה ב-Postman עם POST

תמלול ההרצאה: הוספת נתון חדש למסד נתונים

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

  1. 00:02

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

  2. 00:17

    אנחנו רוצים לגשת ל-tb.books ולהגיד לו add, הנה קיבלתי אובייקט book, בואו תוסיף אותו בבקשה, אבל הוא מוסיף אותו מקומית לאובייקט הקונטקסט.

  3. 00:30

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

  4. 00:54

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

  5. 01:07

    קודם כל זה לא אמור להיות HTTP get כפי שלמדנו, זה אמור להיות HTTP post, זה עבור הוספה. אנחנו רוצים לגלוש ל-API books, אנחנו לא צריכים לשלוח שום ID מהלקוח או מהfrontend, הדטאבייס יוסיף לנו.

  6. 01:19

    אנחנו רוצים לקבל כאן לסוגריים את הספר, בוק, בוק, בצורה כזאת. ולהגיד לו שהמקור של הדבר הזה זה from הבאדי של הרקווסט. אז הוא בעצם ילך לבאדי של הרקווסט, וישלוף משם את ה-json, ויבנה לנו object book מה-json שמתקבל.

  7. 01:47

    יש לנו object book, אנחנו רוצים לבצע book db book, כלומר הספר שכבר היה בדטאביס ואוספנו אותו. שווה לסרוויס, נקודה add book ולשלוח את הספר שהלקוח שלח לנו.

  8. 02:06

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

  9. 02:27

    זה הספר שכבר קיים בדטאבייס, DB Book. אנחנו רוצים להחזיר בחזרה את ה-DB Book, אבל לא על ידי פונקציית אוקיי, אלא על ידי פונקציית Created.

  10. 02:38

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

  11. 02:55

    אנחנו צריכים לתאר לה ככה, איפה נמצא או איזה כתובת אפשר לגלוש אליה בשביל לראות את הספר החדש שהתווסף. הכתובת שאפשר לגלוש אליה בשביל לראות את הספר החדש שהתווסף זה הכתובת הזאת, API Books עם ה-ID החדש.

  12. 03:12

    אז אנחנו רוצים להגיד ש-api.books.slash ולתת לו פה את ה-Book ID שבשלב הזה כמובן כבר יש לו ID. כי זה אחרי, סליחה, לא בוק, אלא דיבי בוק, כי זה כבר אחרי השמירה בדטאבייס, אז הוא מכיל את ה-ID, יש את הספר הזה.

  13. 03:33

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

  14. 03:48

    ופה סיימנו לבנות את הפונקציה add book. בואו נבדוק אותה. כונטורל אופרומש. מריץ לי את כל המערכת, אנחנו הולכים ל-postman, אנחנו משכפלים פה request, duplicate, אנחנו קוראים ל-request הזה, add book, אנחנו מגדירים שהוא יהיה post ולא get, ואנחנו רוצים לגלוש ל-api

  15. 04:11

    books, בלי שום ID, אבל אנחנו רוצים לגשת לאזור של ה-body, raw json, ופה לבנות אובייקט json שהולך להישלח. איזה אובייקט ג'ייסון אני צריך לשלוח?

  16. 04:23

    אם הייתי הולך ל-get one book, הייתי רואה

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

ההרצאה הבאה: עדכון מלא ב-SQL Database

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

  • הוספת מוצר חדש
  • הוספת רשומה חדשה - למסד נתונים - עם Entity Framework
  • חיבור אפליקציה למסד נתונים
  • חיבור למסד נתונים SQLite - חלק 1

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

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