top of page

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

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

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

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

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

שירותים פופולאריים בארץ, ניתן למצוא כדוגמה את פיקוד העורף, שנותן לקבל עידכונים לאפליקציות ואתרים לגבי התראות צבע אדום.

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

כמובן כל מפתח משתמש בזה בהתאם לצרכים שלו ולפי האפשרויות שניתנו לו,

בדך כלל המפתח יצטרך להוסיף לקוד את המזהה חשבון שלו (מפתח).

זה כמו מחרוזת ארוכה אשר מהווה אישור שזה משתמש מורשה של גוגל לדוגמה

וכן נותנת את זהות המפתח (למשל, לדעת שהוא שילם כסף במידע והשירות בתשלום).

var apiKey = "HadF4tHfwuH8w1aRDjQpOrg0y0gF3AWm8sRseRznc3K3h6Hh9j2";

הנתונים מועברים בדר"כ בפורמט xml או בפורמט json (ולעיתים גם CSV, למידע טבלאי המופרד בפסיקים).

המעלה בפורמט הראשון (xml), הדומה לשפת האינטרנט html, הוא שבוא ניתן להעביר מידע מורכב יותר, כיוון שכל צומת יכול לכלול מאפיינים.

עם זאת הפורמט השני (json), שהוא פורמט של אובייקטים בשפת java script, שוקל פחות ומהיר יותר.

איך עובד תהליך התקשורת:

הלקוח, במקרה שלנו הדפדפן (בעצם הקוד, html, java-script, ajax), שולח בקשה בתוכנית http (פרוטוקול תקשורת בו מועברים דפים ומידע באינטרנט), על מנת לקבל תשובה מתאימה מהשרת.

הבקשה צריכה לכלול:

1. סוג הבקשה: האם בשיטת GET, לקבל מידע (דרך שורת ה-URL)

או POST, לשלוח מידע (מילוי טופס) וכדומה.

2. כתובת אינטרנט: המפנה לשרת כזה או אחר של חברה כלשהי.

על מנת שנדע לאיזה שרת לבפנות את הבקשה.

3. האם הבקשה תהיה בצורה אסכרונית, זאת אומרת שהיא תנוהל בתהליך נפרד.

תהליך (thread) זה נושא בפני עצמו. זה גוזל משאבים מהמערכת,

אך לעיתים נחוייב להשתמש בו על מנת שהמשתמש לא יחשוב שהאתר נתקע

(במקרה שיקח הרבה זמן להעביר את מידע מהשרת).

4. כותרת הבקשה: מכילה פרטים על הבקשה, כמו באיזה פורמט ואיזה קידוד (לתמיכה בעברית: UTF-8).

5. גוף הבקשה: המידע אותו אני שולח או מבקש (לדוגמה: name="israel" או n=2).

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

או פס עם התקדמות, עם התקדמות לפי אחוזים.

(שיתקע באחוז 95%, במידע ואין תגובה, כי אין דרך לדעת באמת מתי תגובת השרת תושלם.

כך שזה אמנם מועיל לחוות משתמש, שרואה זמן המתנה משוער,

אך בעצם במקרה זה, זהו אשליה).

ישנם קודי מצב של השרת הנשלחים כתגובה,

לפיה נדע מה קורה עם הבקשה שלנו.

כל קודד מכיל שלוש ספרות המתחילות בין 1 ל-5.

הנפוצים ביותר הם:

קוד 200 האומר שהבקשה נשלחה בהצלחה,

קוד 404 האומר שהכתובת שהקיש הלקוח אינה קיימת.

בעיקרון סוגי הסטטוס של השרת מחולקים לפי הספרה הראשונה.

100 ואילך: מספק מידע על תהליכים הקוראים בשרת.

200 ואילך: מספק מידע על הגעת המידע ללקוח.

300 ואילך: מספק מידע על העברת הבקשה לכתובת שרת אחרת.

400 ואילך: מספק מידע על שגיאות אצל הלקוח.

500 ואילך: מספק מידע על שגיאות בשרת.

כמו כן, כל תגובה כוללת כותרת וגוף בדומה לכותרת וגוף של בקשה.

HTTP Status Codes:

1xx: Informational - Request received, continuing process

100 Continue

101 Switching Protocols

102 Processing

103-199 Unassigned

2xx: Success - The action was successfully received, understood, and accepted

200 OK

201 Created

202 Accepted

203 Non-Authoritative Information

204 No Content

205 Reset Content

206 Partial Content

207 Multi-Status

208 Already Reported

209-225 Unassigned

226 IM Used

227-299 Unassigned

3xx: Redirection - Further action must be taken in order to complete the request

300 Multiple Choices

301 Moved Permanently

302 Found

303 See Other

304 Not Modified

305 Use Proxy

4xx: Client Error - The request contains bad syntax or cannot be fulfilled

400 Bad Request

401 Unauthorized

402 Payment Required

403 Forbidden

404 Not Found

405 Method Not Allowed

406 Not Acceptable

407 Proxy Authentication Required

408 Request Timeout

409 Conflict

410 Gone

411 Length Required

412 Precondition Failed

413 Payload Too Large

414 URI Too Long

415 Unsupported Media Type

416 Range Not Satisfiable

417 Expectation Failed

418-420 Unassigned

421 Misdirected Request

422 Unprocessable Entity

423 Locked

424 Failed Dependency

425 Unassigned

426 Upgrade Required

427 Unassigned

428 Precondition Required

429 Too Many Requests

430 Unassigned

431 Request Header Fields Too Large

432-499 Unassigned

5xx: Server Error - The server failed to fulfill an apparently valid request

500 Internal Server Error

501 Not Implemented

502 Bad Gateway

503 Service Unavailable

504 Gateway Timeout

505 HTTP Version Not Supported

506 Variant Also Negotiates

507 Insufficient Storage

508 Loop Detected

509 Unassigned

510 Not Extended

511 Network Authentication Required

512-599 Unassigned

מאמרים נבחרים
מאמרים חדשים
ארכיון
חפש לפי תג
הבלוג של ישרוליק
  • Facebook Basic Square
  • Twitter Basic Square
  • Google+ Basic Square

ישרוליק נט

israelik net

גולשים אלייך...

bottom of page