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

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

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 ולהדפיס את התוצאה במקום להחזיר אותה. תהנו!

פוסטים נוספים שכדאי לקרוא

פתרונות ומאמרים על פיתוח אינטרנט

נגישות טכנית – פודקאסט ומבוא

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

ספריות ומודולים

מציאת PII באמצעות למידת מכונה

כך תגנו על משתמשים שלכם שמעלים מידע אישי רגיש כמו תעודות זהות באמצעות שירות אמאזוני.

פתרונות ומאמרים על פיתוח אינטרנט

המנעו מהעלאת source control לשרת פומבי

לא תאמינו כמה אתרים מעלים את ה-source control שלהם לשרת. ככה תמצאו אותם וגם הסבר למה זה רעיון רע.

גלילה לראש העמוד