
npm i express מוסיפה את התלות לקובץ package.json.express() מחזירה אובייקט שמאפשר להרים את השרת, והפונקציה listen מאזינה בפורט 3000.get על /api/products מחזיר את המערך עם res.json, שמגדיר את הכותרת כ-JSON וממיר את הנתונים לטקסט.:id בנתיב, והערך נמצא ב-req.params. מכיוון שהערך מגיע כמחרוזת, ממירים אותו למספר לפני ההשוואה.localhost:3000/api/products בדפדפן.הטקסט המלא של הדקות הראשונות בהרצאה «יצירת RESTful Service מאפס» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אחרי שראינו מה זה בעצם ארכיטקטורת רסט, מה בעצם החוקים שיש שם, מה אנחנו אמורים לשלוח ולקבל בחזרה, אנחנו יכולים עכשיו להרים רסטפול סרוויס בנוד ג'יי אס. רסטפול סרוויס בנוד ג'יי אס מתבצע על ידי אקספרס.
אז אנחנו צריכים להתקין את אקספרס. בואו ניגש לטרמינל ונבצע התקנה npm i express. כמובן שההתקנה הזאת הולכת להירשם בקובץ פאקד ג'ייסון, כבר אנחנו נראה את זה.
הנה ההתקנה הסתיימה, package.json ויש לנו כאן את הדיפנדנסי של אקספרס, אנחנו יכולים להתחיל לעבוד. כרגע מה שאני רוצה זה את הדבר הכי פשוט בעולם, אני רוצה שיהיה לי איזשהו מערך, בוא נניח של מוצרים ואני רוצה להרים רסט פול סרוויץ שפשוט מאפשר לגלוש ולקבל את המוצרים.
ועל זה נתחיל כמובן בסרטונים הבאים לבנות ולהגדיל את הרסטפול סרוויס הזה כך שהוא יהיה בנוי כמו שצריך בהתאם למוסכמות ויתמוך בכל ששת הפעולות הנפוצות שעושים עם רסטפול סרוויס.
אז הדבר הראשון שאנחנו צריכים שיהיה לנו זה כמובן מערך של מוצרים. אז בואו נבנה פה איזשהו מערך פרודקטס ונגדיר לפה כמה מוצרים. אז יש לנו כאן מוצר ראשון למוצר חייב שיהיה כמובן איזשהו איי-די.
בואו נניח שהידיד הוא אחד ויש לנו name ובואו נניח שזה Apple ויש לנו price ובואו נניח שהוא שלוש וחצי. נשכפל את זה לעוד מוצר מספר שתיים, בננה, ארבע, שבע, מוצר מספר שלוש, יש לנו פיצ' והוא עולה חמש נקודה שתיים.
והנה יש לנו אוסף של מוצרים. בואו נשים אפילו את האוסף הזה פה למטה, הוא מתחבא לו פה. עכשיו אנחנו רוצים שיהיה לנו כאן את express, const express שווה require express, הנה יש לנו כאן את express.
הדבר הבא שאנחנו רוצים זה לבנות את השרת, const server שווה express, זאת פונקציה כמו שראינו באחד המודולים הקודמים שאנחנו קוראים לה והיא פשוט מחזירה לנו הוא בייקט שמאפשר להרים את כל השרת לאוויר.
איך אנחנו מרימים את כל השרת לאוויר? Server listen, אנחנו רוצים להאזין על פורט, בוא נניח 3000 וברגע שהוא מצליח לעלות לאוויר והכל בסדר הוא יפעיל את הפונקציה הזאת כמו שראינו בעבר ובה אנחנו פשוט עושים פה איזשהו console.log של listening on, יש לנו את htp-localhost port 3000 בצורה כזאת וזה אומר שהשרט באוויר.
עכשיו כל מה שאנחנו צריכים לעשות זה להגדיר לסרבר על איזה method אנחנו מאזינים, post, get, put, patch, delete ובכל method על איזה route אנחנו מאזינים לדוגמה api-products וכדומה.
אז כל מה שאנחנו צריכים לעשות זה server. והנה יש לנו פה את המתוד. והנה יש לנו פה את פוסט והנה יש לנו פה את פוט ואת פאץ' ואת דיליט ואנחנו רואים שכל מה שאנחנו צריכים לעשות זה לבחור את המתוד שאנחנו רוצים להאזין עליה לדוגמא גט כל אחת מהם זה פונקציה שאנחנו קוראים לה ומה שאנחנו נותנים לה זה שני דברים דבר ראשון זה מה הראוט שאנחנו רוצים להאזין עליו בוא נניח שאנחנו
רוצים עבור חשיפה של מוצרים להאזין לפי המוסכמה היא api/products רק אם גולשים ל-api/products אז אנחנו רוצים לשלוח את הפרמטר השני. הפרמטר השני זה הפונקציה שאנחנו רוצים לבצע במידע וזה יהיה הראוט שגולשים אליו.
הפונקציה מקבלת request response כמו שראינו בסרטונים של טיפול ב-http וטיפול באקספרס וברגע שגולשים ל-rout הזה כל מה שאנחנו רוצים לעשות זה להחזיר את הקולקשן הזה אז בואו נחזיר אותו. אז יש לנו פה את ה-Response נקודה אנחנו יודעים שסטטוס אומר מה הסטטוס אנחנו יודעים שאנחנו יכולים לתת לו הדרים נוספים אין לנו כרגע הדרים נוספים
שאנחנו רוצים לשלוח האמת אנחנו יכולים להגיד לו שה-content type הוא הוא application.json ותכף תראו למה אני לא הולך לעשות את זה ואנחנו רוצים to send back את כל המערך הזה כ-json.
איך אנחנו יכולים לשלוח json? אז יש לנו את הפונקציה json.stringify שלוקחת את כל המערך product ושולחת אותו כ-json לקליינט אבל אין צורך בהרבה דברים.
למה? כי ב-default הסטטוס הוא 200 ובשביל לשלוח ג'ייסון אנחנו בכלל לא צריכים את שני אלה אנחנו לא צריכים לומר לו שאנחנו שולחים ג'ייסון ואז להמיר לג'ייסון יש לנו פה פונקציה שנקראת ג'ייסון וכל מה שאנחנו צריכים לתת לה זה פשוט את האוסף עצמו פרודקטס ואז הוא יעשה את כל מה
שראינו מקודם הוא יגיד בהדר שאנחנו שולחים פורמט ג'ייסון ויהפוך בעצמו את כל המערכת הזאת לג'ייסון אמיתי שמוחזר לקליינט סייד.
אז הנה יש לנו ריספונס נקודה ג'ייסון במקום ריספונס נקודה סנד והוא פשוט יחזיר את כל המוצרים האלה בחזרה לצד של הקליינט. בוא נניח שאנחנו רוצים לבנות עוד אחד אז אנחנו רוצים לבצע העתקה של כל זה ולהגיד כזה