התממשקות ל- API

התממשקות api

מהו ממשק API?
API אלו ראשי התיבות של Application Programming Interface ובעברית ממשק תכנות יישומים. מתכנים יכולים להשתמש בממשק זה כדי להשתמש בתוכנות שחברות אחרות בנו. ככל שהAPI מקיף וגמיש כך אפשרות לעשות באמצעות הממשק יותר דברים.

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

התממשקות api

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

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

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

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

איך עושים זאת?
מאחר ובדרך כלל אנחנו עובדים במערכת וורדפרס אנחנו כותבים לעיתים קרובות את הקוד ב-javascript ושולחים את הבקשות באמצעות ajax או שאנחנו כותבת את הקוד ב-PHP ומשתמשים ב-curl.

דוגמה לשליחת טופס ב-PHP

המשתנה URL הוא הכתובת אליה אנחנו שולחים את המידע.
המערך DATA מכיל את כל הנתונים אותם אנו שולחים (הנתונים שמולאו בטופס לפי שמות השדות ב-API אליו אנחנו שולחים).
CURLOPT_RETURNTRANSFER מאפשר את הקצאת המידע אותו אנו מקבלים בחזרה למשתנה. במקרה זה הכנסתי אותו ל-output.
CURLOPT_POST – שולח את הבקשה כ-POST

דוגמה לשליחת טופס באמצעות JS

התממשקות api

המשתנה URL הוא הכתובת אליה אנחנו שולחים את המידע.
בשורות 2-4 הצד השמאלי מכיל את שם השדה ב-API והצד הימני הוא המשתנה במכיל את הנתונים מהטופס עצמו.
Data הוא התשובה אותה אנו מקבלים.

דוגמה לקבלת מידע מה-API של וורדפרס באמצעות JS:

הפעם site_url הוא בכתובת הראשית של האתר, /wp-json/wp/v2/ הינה המיקום של ה-API עצמו והמשתנה type, הוא סוג הפוסט אותו אנו מעוניינים לקבל. כל מה שמגיע לאחר הסימן שאלה הוא סינונים ומיונים שונים:
במשתנה orderby אנחנו יכולים לקבוע אם אנחנו רוצים לקבל את המידע ממיון לפי תאריך/שם וכו'.
במשתנה order אנחנו קובעים אם מדובר בסדר עולה או יורד.
Sort הוא מיון – בדרך כלל אנחנו בודקים אם הפוסט נמצא בקטגוריות המעניינות אותנו.
per_page – הוא מספר התוצאות אותם אנו רוצים לקבל מה-API (במקרה זה קבוע 9).
Page – הוא העמוד אותו אנחנו רוצים לקבל בהתחלה אנחנו כנראה נציג את 9 התוצאות הראשונות אך אם נרצה לטעון 9 נוספות פשוט נשנה את המספר ל-2).
Success – מה יקרה במקרה והצלחנו ליצור תקשורת תקינה עם ה-API.
Error- כאן כתבנו פונקציה למקרה שיש שגיאה.
max_page – יקבל לאחר התשובה את מספר העמוד המקסימלי אותו אנחנו יכולים להציג במיון זה.
number_of_results – הינו מספר התוצאות האפשריות בסה"כ.
Data גם כאן הינה התשובה אותה אנו מקבלים.

CoWeb