מהו API?

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

ממשק תכנות יישומים

המונח API הוא ראשי תיבות, והוא מייצג "ממשק תכנות יישומים".

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

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

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

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

ממשקי API מקלים על מפתחים את החיים

נניח שאתה רוצה לפתח אפליקציה לאייפון. מערכת ההפעלה iOS של אפל מספקת מספר רב של ממשקי API - כמו כל מערכת הפעלה אחרת - כדי להקל עליכם.

אם ברצונך להטמיע דפדפן אינטרנט כדי להציג עמוד אינטרנט אחד או יותר, למשל, אינך צריך לתכנת דפדפן אינטרנט משלך מאפס רק עבור היישום שלך. אתה משתמש ב- API של WKWebView כדי להטמיע אובייקט דפדפן WebKit (Safari) ביישום שלך.

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

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

ממשקי API שולטים בגישה למשאבים

ממשקי API משמשים גם לבקרת הגישה להתקני חומרה ולפונקציות תוכנה שאולי לא בהכרח יש ליישום הרשאה להשתמש בהן. לכן APIs ממלאים לעתים קרובות תפקיד גדול באבטחה.

קשורים: כיצד לעצור אתרים מלבקש את מיקומך

לדוגמא, אם ביקרת אי פעם באתר וראית הודעה בדפדפן שלך כי האתר מבקש לראות את מיקומך המדויק, אתר זה מנסה להשתמש ב- API למיקום גיאוגרפי בדפדפן האינטרנט שלך. דפדפני אינטרנט חושפים ממשקי API כאלה כדי להקל על מפתחי אתרים לגשת למיקום שלך - הם יכולים פשוט לשאול "איפה אתה?" והדפדפן עושה את העבודה הקשה בגישה ל- GPS או לרשתות Wi-Fi סמוכות כדי למצוא את המיקום הפיזי שלך.

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

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

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

ממשקי API משמשים לתקשורת בין שירותים

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

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

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

קשורים: מה זה OAuth? כיצד פועלים כפתורי הכניסה של פייסבוק, טוויטר וגוגל

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

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

אשראי תמונה: patpitchaya / Shutterstock.com.