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

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

רספברי פיי

הרצת גו על רספברי פיי

עולם הרספברי פיי והמייקרים ניתן לתפעול בכל שפה – לא רק פייתון או C – כאן אני מסביר על גו

DALL·E 2024-09-06 12.34.24 - A visually engaging post about Python and cryptographic problems. The image should feature a dark-themed background with a glowing, futuristic Python
פתרונות ומאמרים על פיתוח אינטרנט

בעיות במימוש של פונקציות קריפטוגרפיות בפייתון

היום (16 לספטמבר) ממש, אני מעביר הרצאה ב-PyconIL 2024 על בעיות קריפטוגרפיות באפליקציות פייתון. לצערי אי אפשר להכניס את כל הבעיות הקריפטוגרפיות להרצאה אחת או

צילום מסך של סוואגר
יסודות בתכנות

openAPI

שימוש בתשתית הפופולרית למיפוי ותיעוד של API וגם הסבר בסיסי על מה זה API

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