מה זה API ?

java me

New member
מה זה API ?

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

J u s t y

New member
תשובה

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

IdanR

New member
דוגמא אמיתית....

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

java me

New member
תודה לשניכם. אבל נניח שבניתי class

חדש לגברי. ה- class הזה ממש מספרים קומפלקסים. בנוסף ה- class הזה מכיל פונקציות כגון: getReal() getImg() setReal() setImg() האם אוסף הפונקציות האלה - הם API ? מחכה לתגובתכם.... תודה!
 

methadonepretty

New member
עוד ניסיון

בהגדרה, 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 הוא לא כינוי לכל ממשק שהוא (כמו שהצגת), אלא כינוי לממשק שמאפשר לתקשר עם תוכנה בשעה שהיא רצה.
 
למעלה