
הטקסט המלא של הדקות הראשונות בהרצאה «הסבר על Web Service» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אחד הדברים הכי שימושיים עם מערכת Node.js זה להנגיש מידע ללקוחות. ואנחנו מדברים כרגע על משהו שנקרא Web Service. אבל קודם כל בואו נבין רגע למה Node.js משמשת בעיקר לצורך הנגשת מידע.
מה שאנחנו למדנו עד עכשיו ב-Node.js זה בעצם כל מיני מונחים בסיסיים במערכת הזאת, כמו מה זה מודול ומה זה פאקג' ומה זה גלובל, וזה רק בשביל שנוכל כמובן להשתמש ב-Node.js. ואז עברנו לתכנות אסינכרונית, כי ב-Node.js זה משהו שהוא סופר חשוב ונפוץ והכרחי, ואז ראינו את מערכת הקבצים והתיקיות, שאנחנו כמובן גם נעבוד איתה, טיפה Object Oriented,
ומיד עברנו ללהיות סרבר, שזה בעצם השימוש של Node.js. אבל בדוגמאות שראינו בסרבר, ראינו דוגמא איך אנחנו יכולים בעזרת מודול ה-HTTP להיות סרבר ואיך אנחנו יכולים להיות סרבר עם מערכת אקספרס בעצם.
אנחנו הנגשנו דפים וזה לא הייעוד הנפוץ של Node.js. הייעוד הנפוץ של Node.js זה לא להנגיש דף HTML. אפשר לעשות את זה אבל זה לא הייעוד כי יש מערכות יותר טובות מ-Node.js בשביל לבצע את זה.
המערכת של Node.js זה מערכת שמאפשרת לבצע פעולות קצרות לדיסק, פעולות קצרות לדאטאבייס ולהנגיש דאטה. כאשר את הדפים עצמם נכון היום לבנות יותר בצד הלקוח ולהשתמש ביכולות של המחשב הלקוח בשביל לבנות את הדפים עצמם.
אלו מערכות כמו React, כמו אנגולר וכמו מערכות נוספות שמאפשרות לבנות את המערכת בצד הלקוח, נקרא Single Page Application או SPA ואז Node.js משמשת בצד של השרת אך ורק בשביל להנגיש מידע ללקוח בשביל שהוא יבנה את הדף.
כל הקונספט הזה נקרא Web Service. אז בואו קודם כל נבין מה זה Web Service ולאיזה Web Service אנחנו הולכים לבנות או איזה Web Service אנחנו הולכים לבנות ב-Node.js. אז מה זה Web Service?
זאת בעצם מערכת שנמצאת על איזשהו שרת, Web Server, שמבצעת שירות ללקוחות, הנגישה שירות ללקוחות. השירות שהיא יכולה להנגיש זה ביצוע חישובים מסוימים עבור הלקוחות, זה לספק עזרים, Utilities מסוימים ללקוחות, אבל הרוב הגדול של הדברים ש-Web Service עושה, או עושה,
זה להנגיש מידע ללקוחות. ה-Database עצמו נמצא בצד של השרת, ווב סרוויס שולף מידע מהדאטה בייס ומחזיר ללקוח, יש לנו ריקווסט מהלקוח, ה-Node.js ניגשת לדאטה בייס, שולפת מידע ומחזירה ללקוח את המידע והלקוח עושה איתו מה שהוא רוצה, לדוגמה בונה איתו דף HTML ומציג את הדף.
יש כל מיני טכניקות בעולם לבנות את הקונספט הזה של ווב סרוויס, כל מיני ארכיטקטורות שונות וטכנולוגיות שונות, לדוגמה יש משהו שנקרא XML Web Services, כאן המידע בין הקליינט לסרוור עובר כפורמט XML מסוים.
הפורמט הזה נקרא Simple Object Access Protocol, אולי שמעתם את השם הזה, או SOAP במילים אחרות, וזו טכנולוגיה קצת ישנה להעברת מידע, זה נקרא XML Web Service.
יש לנו Remote Procedure Calls, זו טכנולוגיה שיותר משתמשים איתה ב-Java, וזו בעצם פונקציה מסוימת ב-Java שנמצאת בצד של השרת, והקליינט יכול לקרוא לה, והפונקציה יכולה להחזיר לו מידע.
שוב, Java יותר עובדת עם הטכנולוגיה הזאת. יש לנו מטריה של טכנולוגיות שנקראות Windows Communication Foundation, או בקיצור WCF. המטריה הזאת שייכת למיקרוסופט, וזה מאפשר בכל מיני פרוטוקולי תקשורת להעביר מידע בין שרת ללקוחות, זה כאמור WCF, והטכנולוגיה שהיום היא הופכת להיות יותר ויותר
פופולרית, נקראת REST APIs, RESTful Service שאותה אנחנו הולכים ללמוד. זה בעצם אחת הטכנולוגיות הפופולריות ביותר והשימוש הנפוץ ביותר ש-Node.js משתמשת בו בשביל להוות איזשהו שרת שמנגיש מידע וכמובן יש עוד הרבה.
אנחנו הולכים לדבר בהרחבה על REST API, על RESTful Service, איך בעצם בונים את זה. כאשר קודם כל בסרטון הזה בואו נבין טיפה יותר לעומק למה בעצם אנחנו אנחנו רוצים לבנות בכלל סרוויס שמנגיש מידע.
אז בואו נראה קודם כל מה בעצם הרעיון. נניח שאנחנו תחנת מטאורולוגיה, זה נקרא weather station, ויש לנו דאטאבייס, כמו שאנחנו רואים כאן, שיש לו מידע לגבי מזג אוויר, ואנחנו רוצים כמובן שלקוחות יצפו במידע הזה. אנחנו כמובן גם רוצים להרוויח כסף מן הסתם, להחזיק תחנת בתיאולוגיה ומכשירים וחיישנים
וחזאים, איך אנחנו בדיוק כן נרוויח כסף? אז כמובן אתם יכולים להגיד בואו נבנה אתר אינטרנט שאפשר לגלוש אלינו ולראות את המידע.
אז הנה יש לנו את השרת שלנו והמחשב האפור הזה זה כאילו השרת והכחול הזה זה הדאטאבייס שלנו שבו כל שעה ושעה מעודכנים נתוני מזג אוויר אמיתיים עבור כל הארץ.
אז כל מה שאנחנו יכולים לעשות זה לחשוף את הנתונים האלה על ידי ובסייט. אוקיי, ובסייט זה לא וב-סרוויס, זה לא אתר אינטרנט מאפשר לגלוש אלינו ולקבל דפי אינטרנט, וזה לא וב-סרוויס שחושף מידע, אבל בוא נניח שזה הרעיון שלנו.
אז אנחנו עכשיו מרימים אתר אינטרנט אצלנו בשרת, ניגש ישירות לדאטאבייס ואז יש לנו לקוחות, לא משנה איזה דפדפן הם משתמשים, אופרה, פיירפוקס, חום, אינטרנט אקספלורר, גולשים אלינו, זה האנד יוזר בראוזר, גולש אלינו, מקבל מהשרת שלנו דף אינטרנט ומציג אותו.
אוקיי, אז אנחנו יכולים לעשות את זה, ואז יגלשו לשרת שלנו או לאתר שלנו, או שכן או שלא. מתי בפעם האחרונה שרציתם לראות נתוני מזג אוויר גלשתם לתחנת מטאורולוגיה ספציפית, וזה כמעט לא קורה.
כאשר מישהו רוצה לגלוש ולראות מזג אוויר, הוא מחפש את זה בפורטלים של כל מיני נתונים, לדוגמה פורטלי חדשות, וואלה, נאנה, וויינט, כל מיני מערכות שהן בעצם לא בהכרח שייכות רק למזג אוויר, אבל ידוע שיש להם נתוני מזג אוויר.
אז אם תחנת המטאורולוגיה תעשה את זה, זה לא שאסור לה ולא כדאי לה, אבל כמה לקוחות כבר יגלשו ישירות אליה ויקבלו את זה? איך היא תרוויח פה כסף?
תחנת המטאורולוגיה רוצה להנגיש את הדאטה, לא בהכרח אתר אינטרנט משלה, אלא יותר רק את הדאטה שלה. והדוגמה שאנחנו רואים כרגע זה לא דוגמה ל-Web Service, כי כמובן אין לנו פה Web Service.
אז בואו נראה איך אותה תחנת מטאורולוגיה נכון מבחינתה לבצע את זה. מה שהתחנת מטאורולוגיה רוצה לעשות זה קודם כל לבנות Web Service, ויכול להיות בכל מערכת C-Sharp, Java, WCF, RESTful Service כלשהו, או Node.js כמובן, ש-Node.js יכולה להוות RESTful Service או להכיל RESTful Service,
ולחשוף רק ורק את הדאטה הטהור שיש לה,