הגענו לנושא חדש יחסית קצר, וחשוב מאוד:
API – Application Programming Interface.
מה זה API?
כמו תמיד ננסה להבין זאת על ידי דוגמאות:
דוגמא א׳:
נגיד שאנחנו רוצים ליצור אתר של מזג אויר בישראל, כלומר אתר שמציג את מזג האויר לכל מקום בארץ לשבוע הקרוב.
בשביל להציג את המידע הזה, אנו, כמקימי האתר, צריכים לדעת בעצמנו מה מזג האוויר, נכון?
אופציה אחת, זה ללכת ולבדוק מה המזג אוויר בחוץ. אך כמובן שזו אינה אופציה! אין לנו דרך לבדוק בכל המקומות, ובטח שאין לנו את הכלים לבדוק מה יהיה מזג האוויר עוד שבוע.
אופציה שנייה והריאלית – לגשת לחברה שמתמחה במזג אוויר, ושבעצמה עושה את הבדיקות והמדידות הללו – ולבקש מהם את כל הנתונים ולהשתמש בהם.
דוגמא ב׳:
אם אתם זוכרים, אחת המשימות שלנו כשלמדנו על פונקציות הייתה – ליצור ממיר של דולרים לשקלים ולהפך.
מה הדבר המהותי שהיה חסר בפונקציה? ערך ההמרה, כלומר כמה שקלים בדיוק שווה כל דולר! מאיפה אנחנו יכולים להביא את המידע כזה?
אופציה א׳ – לבדוק באינטרנט מה הערך – ולקבוע את ערך ההמרה לפי זה? מה הבעיה באופציה הזאת? שכל הזמן הערך משתנה. כלומר אם נרצה שהפונקציה תהיה עדכנית נצטרך לשנות אותה כל הזמן.
אופציה ב׳ – לגשת ישירות לנתונים הללו אצל חברה שמתמחה בזאת ולבקש את הנתונים בזמן אמת.
אז אנו רואים מ2 הדוגמאות הללו, שיש מקרים שאנו נרצה לגשת למידע ולנתונים של גורם חיצוני.
כעת אנו נלמד איך ניתן לגשת לנתונים כאלו. נבין איפה המידע הזה שמור, ואיך אפשר לגשת אליו. אז ראשית נלמד על 2 מושגים חדשים – השרת והלקוח:
שרת ולקוח
דיברנו על כך שחברה(זה לא חייב להיות חברה, זה יכול להיות כל אדם שרוצה לשתף נתונים מסוימים), יכולה לאפשר למשתמשים לגשת לנתונים השייכים לה. איפה היא תשמור את הנתונים? בשרת ששומר על המידע.
מה זה שרת? ננסה להבין זאת בצורה הפשוטה ביותר:
שרת זה מחשב שתפקידו לתת שירות מסוים ללקוח.
לקוח זה ׳אנחנו׳ – כל אחד שרוצה לקבל שירות.
אז אנחנו כלקוחות פונים לשרת – והוא מספק לנו שירות.
שרת של המידע – זה מחשב שתפקידו לאחסן את המידע הרצוי, ולספק את המידע למי שמבקש.
לכן, אם חברה רוצה לשתף מידע, היא תשמור אותו בשרת המיועד לכך.
כעת מי שירצה לגשת למידע הרצוי – יצטרך לגשת לשרת שבו המידע שמור.
אז איך API קשור לכל הסיפור?
API זה ההסכם בין מי שניגש למידע, לבין מי שמספק את המידה.
API זה קבוצה של פקודות, פונקציות, ואובייקטים, שבעזרתם המתכנת יכול לגשת למערכות חיצוניות(לשרתים הרצויים).
ננסה להבין זאת טוב יותר:
נגיד שאתם הולכים לקניון, ונכנסים לחנות נעליים. החנות נעליים מורכבת מ2 חלקים – החנות עצמה – איפה שנמצאים המוכרים והלקוחות, והמחסן. בחנות עצמה, אנו נראה את הנעליים המוצגות לראווה, את המחירים, ושם גם נמדוד את הנעליים. במחסן – יהיו מאוכסנים כל הסוגים של הנעליים בכל המידות.
אם תכנסו לחנות וישר תלכו למחסן ותתחילו להוריד נעליים מהמדפים, למדוד סוגים שונים, כאשר הכל קורה בתוך המחסן – מהר מאוד יגיעו העובדים ויבקשו ממכם בנימוס(או שלא) לצאת מהמחסן.
בעצם כאשר לקוח נכנס לחנות, יש איזה הסכם שבשתיקה – חוזה, בין הלקוח לבעל החנות, אשר בחוזה הזה, בעל החנות מרשה ללקוח להיכנס לחנות, לבקש עזרה, למדוד נעליים וכו׳. ידוע לכולם שלקוח אסור להיכנס למחסן, ומצד שני הוא יכול למדוד נעליים והוא לא מתחייב לקנות שום דבר.
API הוא ההסכם הזה, כמו בחנות.
לכל חברה יש את הנתונים שלה. למשל חברת מזג האויר שרוצה לאפשר לציבור הרחב לגשת לנתונים של מזג האוויר – תיצור API. כלומר תיצור ׳הסכם׳ איך ניגשים לנתונים. איך ניגשים למזג אויר בירושלים, ואיך ניגשים למזג אויר מחר וכו׳..
למשל חברה שמחזיקה מאגר תמונות גדול של נופים, היא אולי תכלול בAPI, אפשרות למי שרוצה להוסיף תמונות למאגר, או לבקש נופים ספציפיים.
בפרק הבא נראה דוגמאות שימחישו זאת כמו שצריך.
לסיכום:
ראינו דוגמאות שבהם היינו רוצים לגשת למידע קיים של אנשים וחברות אחרות.
ראינו איפה המיגע הזה נשמר – בשרתים.
כדי לגשת אל השרתים צריך להכיר את הAPI.
הAPI הוא ההסכם שקיים בין שרת מסוים למשתמשים בו.
לכל אתר שמספק API, כמובן שהוא יהיה שונה, מכיוון שכל אחד מספק מידע ושירות שונה.
(בסוגריים נאמר שעד כה דיברנו רק על API חיצוני, כלומר במקרים שאנו נרצה לגשת למידע חיצוני. יש אפשרות גם לבנות וליצור API משלנו שבו אנו משתפים מידע בעצמנו.)
בפרק הבא נעבור ונראה את הנק׳ המרכזיות של איך להשתמש בAPI.