נפתר הוספת משתנים באופן יזום לבקשה
-
כתבתי קוד ב-PHP להתממשקות עם שלוחת ה-API שיצרתי במערכת.
אני מנסה לשלוח פרמטרים נוספים ל-request באופן דינאמי ויזום בתוך הקוד, ללא שימוש ב-read וב-id_list_message, כך שהפרמטרים הללו יופיעו ב- $_GET.ניסיתי לעשות את זה בהתחלה כך:
echo "re_record_city=2&city=ירושלים";
אך זה לא הצליח.
נראה לי שהתשובה לכך נמצאת ב"מודול API" בכותרת "פרמטרים קבועים שנשלחים לשרת":
לדוגמה אם ברצונכם שבכל פנייה לשרת המערכת תצרף את הפרמטרים foo=111 bar=222 יש להגדיר בהגדרות השלוחהapi_add_0=foo=111 api_add_1=bar=222
במקרה כזה הבקשה ב-GET תראה כך
https://example.com/YemotApi?foo=111&bar=222
הבעיה היא שאני לא יודע איך לשלב את זה בקוד PHP.
שאלה נוספת:
איך אפשר לשנות ערך פרמטר קיים תוך כדי שימוש ב-read? (מדובר בפרמטר ששונה מהפרמטר של read, ואני מעוניין לשנות את הערך שלו ב-$_GET בצורה יזומה בקוד).
לדוגמא נניח שכבר קיים הפרמטר foo=1, וכעת אני מעוניין לקלוט באמצעות read את הפרמטר bar, אך תוך כדי הקליטה של bar, אני מעוניין ש-foo ישתנה בצורה יזומה.אשמח אם תוכלו להכווין אותי כיצד ניתן ליישם את זה בצורה הנכונה.
-
-
@soris1989 לכן אתה צריך להגדיר במפורש שהסשן יהיה לפי פרמטר מזהה השיחה שימות שולחים (ולאפס אותו לפני יציאה מהשלוחה):
session_id($_GET['ApiCallId']); session_start();
קרדיט @amp-Software-0 , אני לא כותב בPHP
-
@soris1989 אתה לא יכול, הגדרת משתנים שרירותית לכל הבקשות זה מראש בהגדרות השלוחה, לא בתשובה שלך המודל api
נראה לי שמה שאתה מחפש זה סשנים -
@צדיק-תמים אז זהו, ש-session לא יעבוד. למרות שהמידע של ה-session נשמר על השרת המרוחק שבבעלותי, בכל אופן ה-session משתמש ב-cookie כדי לשמור את ה-ID בשם PHPSESSID בצד הלקוח (זה נשמר כעוגיה בדפדפן), ובמעבר בין דפים באתר (או בכל אפליקצית WEB), בזכות העוגיה הזו, הדפדפן דולה את המידע מה-session שבצד השרת ושומר על: data persistency.
כאן הסיפור הוא שונה, אין כאן דפדפן ששומר את העוגיה הזו, זה נטו צד שרת, ולכן בכל פעם שה-API נטען ה-session נאבד, מפאת העובדה שאין עוגיה ששומרת את ה-PHPSESSID.ולכן השתמתי בגישה אחרת מאשר session, השתמשתי במסד נתונים / בקבצים לשמירת הנתונים לאורך הבקשות ב-API.
ואגב, לרווחא דמילתא, לצורך הבדיקה, החלפתי את המודול שבניתי שעובד(מודול ששומר את המידע בין הבקשות בקובץ זמני), ובניתי מודול שמבוסס על session - וזה לא עובד, המידע לא נשמר ב-session.
-
@soris1989 לכן אתה צריך להגדיר במפורש שהסשן יהיה לפי פרמטר מזהה השיחה שימות שולחים (ולאפס אותו לפני יציאה מהשלוחה):
session_id($_GET['ApiCallId']); session_start();
קרדיט @amp-Software-0 , אני לא כותב בPHP
-
@צדיק-תמים כתב בהוספת משתנים באופן יזום לבקשה:
session_id($_GET['ApiCallId']);
תודה רבה,
זה עזר לי מאוד!! -