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

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

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

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

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

פייתון

קבצי קונפיגורציה בפואטרי

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

מיקרו בקרים

הפעלת מסך oled קטנטן עם esp32

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

DALL·E 2023-10-21 22.28.58 - Photo of a computer server room with red warning lights flashing, indicating a potential cyber threat. Multiple screens display graphs showing a sudde
יסודות בתכנות

מבוא לאבטחת מידע: IDOR

הסבר על התקפה אהובה ומוצלחת שבאמצעותה שואבים מידע מאתרים

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