דוגמה של REST API עם דרופל

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

אני גם לא הולך להראות כאן מימוש מלא של REST אלא מימוש פשוט מאד של קריאה בלבד באמצעות דרופל. אני מאד אוהב להשתמש בדרופל כ-Back End רב עוצמה שיכול לתמוך בקריאה ובכתיבה של משאבים (resources) דרך REST בקלות, יעילות והכי חשוב: עם מעט קוד יחסית. הדוגמה שלי תראה איך עושים קריאה של נתונים באמצעות GET מדרופל.

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

איך עושים את זה? בעיקר באמצעות hook_menu. בו אני יוצר את 'הדפים' שהם הבסיס לקריאות השונות.


/**
* implementation of hook_menu
**/

function myModule_menu() {
    $items['member'] = array(
      'page callback' => 'myModule_member',
	  'access arguments' => array('access content'), 
    );	
    return $items;
}

בדוגמה הזו, אני יוצר עמוד בשם member (שיהיה ניתן להכנס אליו באמצעות mysite.com/member). כאשר אנחנו נכנסים אליו, מופעלת פונקציה בשם myModule_member. אני יכול כמובן להוסיף פרמטרים לקריאה וליצור כתובות יותר מורכבות כרצוני. במקרה הזה מדובר בשירות פשוט שמרמז על כך שהוא נותן מידע על חברים. נתינת המידע וההדפסה נעשית בפונקצית ה-callback.

בפונקציה הזו כל הקסם מתרחש. אנחנו יכולים לבקש פרמטרים ולבצע את הקריאה מהם. למשל:


function myModule_member() {
	$email = $_GET['email'];
	$group = $_GET['group'];
}

מה שחשוב הוא ההדפסה או ההחזרה. אם אני מחזיר מידע בפונקציה הזו (מבחינת return), המידע שיש בדף יעבור דרך מערכת ה-theming של דרופל. לפעמים זה טוב, בדרך כלל זה לא טוב. לפיכך אני בדרך כלל מדפיס את המידע (משתמש ב-print) וכך אני מקבל טקסט נקי שמודפס ומוחזר למי שקרא אותו. אם אני צריך להוסיף header (יותר רלוונטי ב-REST שעושה PUT) אז אני מכניס אותו באמצעות פקודת PHP פשוטה של header.

נתתי כאן דוגמה על קצה המזלג כיצד יוצרים מימוש מאד (מאד) פשוט של REST עם דרופל – מה שחשוב הוא להשתמש ב-hook_menu ולהדפיס את התוצאה במקום להחזיר אותה. תהנו!

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

אהבתם? לא אהבתם? דרגו!

לא אהבתי בכלללא אהבתיבסדראהבתיאהבתי מאוד (1 הצבעות, ממוצע: 5.00 מתוך 5)


אל תשארו מאחור! יש עוד מה ללמוד!