PracticU

שימוש ב-QueryString
דוט נט NET Core.

בלי כתוביותעם כתוביות
PracticU › קורס דוט-נט - NET Core. - עם Rest API › שימוש ב-QueryString דוט נט NET Core.
שימוש ב-QueryString דוט נט NET Core.
הרצאה על route שמקבל פרמטרים ב-Query String, ועל סינון ספרים לפי טווח מחירים.
איך זה עובד
1. מה זה Query String: רשימת פרמטרים בעלי שם וערך אחרי סימן שאלה, מופרדים ב-&. לדוגמה: api/books/price-range?minPrice=50&maxPrice=200. היתרון הוא שכל פרמטר ברור לפי שמו, בניגוד לרצף ערכים בנתיב כמו /50/130/blue.
2. ב-Service: הפונקציה GetBooksByPriceRange מקבלת שני decimal, המחיר המינימלי והמקסימלי, ומחזירה רשימת ספרים. השאילתה היא _db.Books.Where(...) עם התנאי שהמחיר גדול או שווה למינימום וקטן או שווה למקסימום, ובסוף ToList.
3. ב-Controller: מעתיקים את פונקציית ה-Get וקוראים לה GetBooksByPriceRange, עם HttpGet ונתיב שמסתיים ב-price-range. הפרמטרים הם decimal, כמו טיפוס המחיר.
4. מקור הפרמטרים: מסמנים כל אחד מהם ב-[FromQuery].
5. בדיקה ב-Postman: משכפלים את Get All Books ומוסיפים minPrice ו-maxPrice בלשונית Params, או ישירות בכתובת. טווח 60 עד 130 מחזיר את שני הספרים שבטווח (120 ו-70), וטווח 60 עד 80 מחזיר ספר אחד.
שימו לב
- כשהנתיב הוגדר זהה לנתיב קיים, הופיעה אזהרת route conflict. הפתרון הוא להוסיף את price-range לנתיב.
- בניסיון הראשון חזרה שגיאת 404 כי חסר סימן השאלה לפני הפרמטרים.
- ביטויי Lambda נלמדו בקורסים קודמים.
כעת אפשר להגדיר route שמקבל כמה פרמטרים בשמותיהם.
השיעור הבא בקורס: יצירת דוקומנטציה דף בדיקה - מנגנון Swagger

פרקי ההרצאה: שימוש ב-QueryString דוט נט NET Core.

  1. 00:00

    ראוט שמקבל Query String

  2. 00:40

    מבנה ה-Query String

  3. 01:17

    יתרונות ה-Query String

  4. 01:57

    פונקציית Get Books By Price Range

  5. 02:38

    סינון הספרים לפי טווח מחירים

  6. 03:33

    הגדרת הראוט Price Range

תמלול ההרצאה: שימוש ב-QueryString דוט נט NET Core.

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

  1. 00:02

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

  2. 00:26

    נותנים מחיר מינימלי, נותנים מחיר מקסימלי, תביא לי את כל הספרים שבטווח הזה. אז בואו נמציא רגע איזשהו ראוט כזה. נניח שהיוזר גולש לראוט, API books, slash price range, ואז הוא רוצה בתוך הראוט, לתת לי רשימת פרמטרים, אבל עם שמות, וזה נקרא query string.

  3. 00:47

    מה שהוא יעשה הוא ישים סימן שאלה, ואז שם של פרמטר, בואו נחליט על mean price, שווה איזשהו ערך, בואו נניח 50. ואז הוא רוצה עוד פרמטר, ampersand, max.

  4. 00:59

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

  5. 01:11

    בסדר, אבל הנה, query string. query string זה בעצם הרשימה הזאת של name, שם של פרמטר, שווה איזה שהוא value, ampersand, שם שווה value.

  6. 01:21

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

  7. 01:50

    מינימלי וזה מחיר מקסימלי, וכמובן REST API תומך בקוויריסטרי טוב, בואו נבנה אז קודם כל אנחנו רוצים פונקציה כזאת כאן בסרוויס, public, מחזירה ליסט של book, כי יכול להיות כמה ספרים כמובן, get books by price range.

  8. 02:09

    הנה נקבל decimal, minimum price, seek decimal, max price, בצורה כזאת. אנחנו רוצים לבצע את הלוגיקה עצמה, אז בואו ניקח list book, books, שווה underline tb.books.where b, עבור כל ספר, תביא לי אותו רק עם הפרייס, גדול שווה למין פרייס, וגם b.price, קטן שווה ל-max price, ויש לנו כרגע את השאילתה,

  9. 02:49

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

  10. 03:11

    רוצים לעשות זה Return Books בצורה כזאת. Alright, אז הנה Get Books by Price Range, Done. בואו ניגש לכאן. ולמעשה אנחנו רוצים פונקציה שדומה לפונקציית ה-get שכבר כתבנו.

  11. 03:27

    בואו נעתיק אותה, copy, נלך ונדביק פה, paste, ואנחנו רוצים http-get כמובן, מפני שאנחנו מבקשים מידע, api-books, שימו לב שיש לנו פה warning, בגלל שכבר יש לנו בדיוק ראוט כזה, וזה מה שנקרא route conflict, slash, אמרנו שאנחנו רוצים price range, בואו נראה בדיוק מה שאמרנו פה, Price Range,

  12. 03:54

    ומה שאנחנו רוצים זה לקבל

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

ההרצאה הבאה: יצירת דוקומנטציה - דף בדיקה - מנגנון Swagger

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

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

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

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