עוד ניסיון
בהגדרה, API הוא סט של פונקציות או כלים שמספקת אפליקציה אחת מתוך כוונה לאפשר למתכנת מבחוץ להעביר אליה ולקבל ממנה מידע או פקודות. נניח שכתבת תוכנה שמנגנת קבצי MP3 וסרטים בשם Player, לא משנה באיזו שפה. אני, שמריץ את התוכנה הזאת על המחשב לצרכיי האישיים, מעוניין לכתוב תוכנה קטנטנה בשפת C (נקרא לה VolumeControl), שתרוץ לצד התוכנה שלך ותוכל להגביר ולהנמיך את הווליום בתוכנה שלך, כמו בשלט רחוק. לחצתי על "הגבר" בתוכנה שלי והתוכנה שלך, שיושבת לצידה על המסך, תגיב בהתאם. זאת הדרישה. לא מסובך. מה צריך בשביל זה? דרך שבה שתי התוכנות יתקשרו. דרך שבה התוכנה שלי תוכל לצעוק לתוכנה שלך "תנמיכי את הזבל הזה". בשביל זה אתה צריך לספק לי עם Player את אותו API: רשימה מתועדת של פונקציות שאני יכול לקרוא להן כדי להשפיע על התוכנה שלך: TurnItUp() TurnItDown() מרגע שסיפקת לי ממשק שכזה, כל מה שאני אצטרך לבצע הוא קריאה לפונקציות הנ"ל מתוך הקוד שלי. As simple as that. API נזכר הרבה בהקשר של מערכות הפעלה, כי הן התוכנות שאיתן הכי פופולרי לתקשר. Windows API, למשל, הוא אוסף של אלפי פונקציות שמספקת "חלונות" למטרות כגון ציור על המסך, פלט לקבצים, ניהול הגדרות מערכת ועוד. איך אתה כותב ל-Registry של חלונות? פונקציית API. איך אתה משנה רזולוציית מסך? פונקציית API. איך אתה מציג אייקון באזור שעון המערכת? פונקציית API. איך אתה מקבל את השעה המדויקת במערכת? פונקציית API. כל הכלים שאתה צריך כדי להתעלל במערכת מסופקים לך ברשימה אחת ארוכה ומתועדת היטב ע"י Microsoft. למפתחי מערכת הפעלה יש אינטרס נוסף לספק למתכנת API נוח: אחידות ממשק. למה ל-Word ,Photoshop וכמעט כל תוכנת "חלונות" אחרת שתחשוב עליה יש חלונות ראשיים דומים מבחינה ויזואלית, למרות שהחברות שייצרו אותן שונות? כולן מבקשות מ-Windows חלון באמצעות קריאה לפונקציית API. מערכת ההפעלה יוצרת/מציירת חלון זהה עבור כולן ומגישה להן אותו, וככה משיגה אחידות ויזואלית. כנ"ל לגבי כפתורים, תיבות טקסט, תיבות רשימה, תפריטים ועוד פקדים מוכרים שמגיעים בצורות זהות בכל תוכנה שתתקין. API הוא לא כינוי לכל ממשק שהוא (כמו שהצגת), אלא כינוי לממשק שמאפשר לתקשר עם תוכנה בשעה שהיא רצה.