טכנולוגיה וחדשנות

מה זה API? כך תחסכו זמן פיתוח יקר

https://imagedelivery.net/96rXur4ZJ5lf0RWFpqlHvQ/598806a4-9b06-47a3-8411-4545cf3bb100/public
ליאב מלכה | מנהל תחום אינטגרציה
5 דקות

מה זה API? טאיך הוא עוזר לחסוך במשאבי פיתוח, כסף, זמן, כוח אדם ומאמץ? אחת הדרכים הקלאסיות לעשות זאת היא להשתמש ב-API, Application Programming Interface, ממשק תכנות יישומים בעברית. במאמר הבא נסביר מה זה אומר, איך משתמשים בו ולאילו עסקים הוא יכול להתאים.

 

מה זה API?

 

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

 

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

שנית, מה זה REST API? REST (או Representational State Transfer) הוא אוסף כללים מקובלים לגבי אופן תקשורת בין מערכות ברשת. הקונספט שמאחוריו טכני ומורכב יחסית, אך הוא מפשט תקשורת בין מערכות. לצד SOAP (Simple Object Access Protocol), REST הוא אוסף התקנים והמוסכמות שנמצא בשימוש הרחב ביותר.

 

rest api מה זה?

 

REST (Representational State Transfer) זהו סגנון תוכנה ארכיטקטוני למימוש שירותי רשת (API). המטרה היא הגדרת משאב מערכת שהמצב שלו עובר שינוי כתוצאה מהאינטראקציה בין מספק השירות לצרכן. הוא הוצג בפעם הראשונה על ידי רוי פילדינג בשנת 2000 במסגרת עבודת הדוקטורט שלו. פילדינג הוא אחד המחברים העיקריים של פרוטוקול HTTP, שתחתיו מתבצעים מימושי REST ברוב המקרים.


REST API יכול לשמש עבור כל אתר או אפליקציה בכל שפה שהיא כתובה בגלל שהבקשות מתבססות על הפרוטוקול האוניברסלי של HTTP והמידע לרוב יוחזר בפורמט של JSON שכל השפות יודעות להשתמש בו ולקרוא אותו.

 

מה זה REST API

טבלה בסיסית של בקשות (HTTP Methods) ב-REST API, הכוללת את מספר הבקשה (במובן של סוג הפעולה) ומה היא אומרת:

מספר סוג הבקשה (Method) תיאור הפעולה
1 GET בקשת מידע מהשרת (למשל, קבלת רשימת פריטים)
2 POST שליחת מידע לשרת ליצירת משאב חדש
3 PUT עדכון משאב קיים (מחליף את כולו)
4 PATCH עדכון חלקי של משאב קיים
5 DELETE מחיקת משאב מהשרת
6 OPTIONS בקשה לבדוק אילו פעולות זמינות על המשאב (Metadata)
7 HEAD כמו GET אך מחזיר רק כותרות (Headers) ללא גוף

 

 

הנה טבלה עם REST API ותיאור קצר לכל בקשה ודוגמה מעשית:

 

 

סוג הבקשה תיאור קצר דוגמה
GET משמשת לקבלת מידע מהשרת. לא משנה נתונים, רק קוראת. GET /users – מחזיר רשימת משתמשים.
POST יוצרת משאב חדש על השרת. שולחת מידע בגוף הבקשה. POST /users עם גוף JSON כמו { "name": "David" } – יוצר משתמש חדש.
PUT מעדכנת משאב קיים או יוצרת אם לא קיים. מחליפה את כל התוכן. PUT /users/1 עם גוף { "name": "David", "age": 30 } – מעדכן את כל פרטי המשתמש מס' 1.
PATCH מעדכנת חלק מהנתונים במשאב קיים. PATCH /users/1 עם גוף { "age": 31 } – משנה רק את הגיל של המשתמש.
DELETE מוחקת משאב מהשרת. DELETE /users/1 – מוחק את המשתמש מס' 1.
OPTIONS מציג אילו פעולות זמינות על משאב מסוים. שימושי ל-CORS. OPTIONS /users – מחזיר אילו מתודות (GET, POST וכו') מותרות.
HEAD כמו GET, אך מחזיר רק כותרות (Headers) ללא תוכן. משמש לבדיקה. HEAD /users – בודק אם הקובץ או המשאב קיים, בלי להחזיר את התוכן.

 

איזה סוגי שגיאות קיימות ומה הן אומרות

קוד שגיאה שם השגיאה באנגלית הסבר
400 Bad Request הבקשה לא תקינה – חסרים נתונים, פורמט שגוי או בעיה בסינטקס.
401 Unauthorized לא מורשה – המשתמש לא נכנס או שסמל זיהוי (Token) לא תקין.
403 Forbidden אין הרשאה – גם אם המשתמש מחובר, אין לו גישה למשאב.
404 Not Found לא נמצא – הכתובת או המשאב המבוקש לא קיימים.
405 Method Not Allowed השיטה שנשלחה (כמו POST או DELETE) לא מותרת בכתובת זו.
409 Conflict התנגשות – המשאב כבר קיים או יש סתירה בנתונים.
422 Unprocessable Entity הנתונים תקינים מבחינה טכנית, אבל לא עומדים בכללים הלוגיים (למשל, אימייל לא חוקי).
500 Internal Server Error שגיאה כללית בשרת – משהו נכשל בצד השרת.
502 Bad Gateway השער (Gateway) קיבל תגובה לא תקינה משרת אחר.
503 Service Unavailable השירות לא זמין – השרת בעומס, בתחזוקה או לא מגיב כרגע.

 

 

למה צריך API?

 

 

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

 

אילוסטרציה של מחשב קוד וחיבור למערכת המידע הארגונית

 

 

איך משתמשים בו?

 


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

 

אילו עסקים צריכים API?

 


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

 

סיכום

 

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

api מה זה

פוסטים נבחרים

מטוס נייר אדום

אם לא תרשמו, איך תגלו את החידושים ?

אם תרשמו, נדאג לשלוח לכם רק חדשות שמעניינות את העסק שלך

whats-app-icon