PracticU

עדכון חלקי במסד נתונים
דוט נט NET Core.

בלי כתוביותעם כתוביות
PracticU › קורס דוט-נט - NET Core. - עם Rest API › עדכון חלקי במסד נתונים דוט נט NET Core.
עדכון חלקי במסד נתונים דוט נט NET Core.
בפרוטוקול REST אפשר לעדכן מידע חלקי עם Patch במקום Put. ההרצאה מדגימה עדכון מחיר בלבד.
השלבים העיקריים
1. הצורך: המחיר הוא נתון שמשתנה בתדירות גבוהה, ומי שבונה את הפרונט (אתר או אפליקציה) עשוי לרצות לעדכן רק אותו.
2. ב-Service: מעתיקים את פונקציית העדכון לשם UpdateBookPrice. מביאים את הספר מהמסד, ואם הוא null מחזירים null. מוחקים את עדכון ה-Title וה-Description ומעדכנים רק את Price, ואז שומרים ומחזירים את הספר מהמסד, כך שכל המידע חוזר.
3. ב-Controller: משכפלים את הפונקציה, מחליפים ל-HttpPatch וקוראים לה UpdateBookPrice. ה-ID בא מה-route והספר מה-body. מגדירים book.Id = id, קוראים ל-Service ומחזירים Ok.
4. בדיקה ב-Postman: משכפלים את Update Book בשם Update Book Price, משנים ל-patch ושולחים מחיר 150. התשובה חוזרת, ב-SSMS ה-Title וה-Description נשארים כמו שהיו והמחיר הוא 150. הפונקציה בכלל לא מעדכנת אותם, ולכן אין חובה לשלוח אותם.
טעויות נפוצות
- ניסיון לשלוח מחיר 159.99 בלי כותרת החזיר "the title field is required". המערכת בודקת שדות חובה אוטומטית כברירת מחדל, וזה מה שהמרצה רוצה לבטל כדי לבדוק בקוד. הנושא שייך לפרק הוולידציה, ולכן בינתיים השאיר את ה-Title וה-Description בבקשה.
- בניסיון הראשון התקבלה שגיאה כי השרת לא רץ. צריך להריץ אותו עם Ctrl+F5.
עכשיו אפשר לעדכן שדה אחד של ספר בלי לגעת בשאר השדות.
השיעור הבא בקורס: מחיקת נתונים מ-Database דוט נט NET Core.

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

  1. 00:00

    עדכון חלקי עם Patch

  2. 00:38

    עדכון מחיר בלבד בסרוויס

  3. 01:15

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

  4. 01:53

    בדיקה ב-Postman

  5. 02:37

    שליחת בקשת Patch

  6. 03:15

    בעיית Title Field Required

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

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

  1. 00:02

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

  2. 00:21

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

  3. 00:46

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

  4. 01:09

    אז כל המידע יחזור. בואו נשכפל את הפונקציה הזאת, copy, paste, במקום put נגדיר patch, נבצע פה update book price, ה-id נשלח ב-route, וכאן אנחנו מקבלים את ה-body.

  5. 01:27

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

  6. 01:56

    אבל פה הוא לא חייב ובואו נראה איך אנחנו מתייחסים על זה בפוסטמן. הנה פוסטמן ומה שאנחנו רוצים זה לשכפל בעצם את update book, בואו נעשה duplicate ונגדיר update book price, ניגש לבאדי, הנה ה-ID נמצא פה וניפטר משני החברה האלה, האמת בואו אפילו נשאיר אותם ונשנה אותם לסתם איזה מידע, יש לנו

  7. 02:24

    פה.NET, C Sharp for Beginners זה יהיה הטייטל של הספר ו.C Sharp for Beginners או From Beginners to Expert ו נגדיר שאנחנו רוצים 150 שקל.

  8. 02:45

    שימו לב שכאשר אנחנו נשלח Patch, כמובן אני צריך לשנות את זה לפאץ'אז תהיה התעלמות משני החברה האלה כי פשוט הפונקציה בכלל לא מעדכנת אותם ואנחנו גם לא היינו אמורים לשלוח אותם. בואו נבצע send, ואנחנו מקבלים שגיאה, כי כמובן שכחתי להריץ את השרת, Ctrl F5, שרת רץ, מעולה, go, send, הנה אנחנו רואים שהוא חוזר, אבל אין עדכון של ה-title ושל

  9. 03:10

    ה-description, רק של הפריס 150, Ctrl R בדטאבייס, title ו-description נשארו as is, פריס כן עוד כאן ל-150, בפועל אנחנו בעצם לא צריכים לשלוח את זה בכלל, והכל אמור לעבוד כמו שצריך.

  10. 03:27

    בואו רגע נגדיר 159.99. יש לנו פה בעיה אם the title field is required. מה שבעצם קרה כאן זה

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

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

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

  • עדכון רשומה קיימת - במסד נתונים - דוט נט - Entity Framework
  • עדכון חלקי של מוצר ב-MySQL
  • עדכון נתונים ב-MongoDB
  • הסבר על Console - דוט-נט Framework vs Core

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

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