מה הדרך הנכונה לבנות query-string בתוך הURI לדעתכם?

מה הדרך הנכונה לבנות query-string בתוך הURI לדעתכם?

תיאור המצב: השרת מקבל בקשה המכילה הגדרות "מורכבות", במקרה זה רק כמחרוזת כתובת (get) -
דוגמה פשוטה - השרת מקבל שם משתמש ואת שם החתול שלו. במקרה זה הURI ייראה כך:
[URL]http://stam.cgi?username=user&canname=cat[/URL]
כעת נניח שאני רוצה להעביר משהו מעט יותר מורכב (ושוב - שמוש בget בלבד).אם מעבירים catname או dogname, אז הכל "רגיל". אבל המשתמש יכול להעביר גם הגדרה של חיית מחמד (נניח - pat=dog&name=dingo).
אם הייתי משתמש בpost, הייתי פשוט מעביר מבנה json של הפרמטר המורכב. השאלה איך להעביר את המצב המורכב יותר כך ש:
א. יהיה קריא למשתמש הAPI (לקצר את התיעוד)
ב. יפחית את הסבירות שהמתכנת שפונה לAPI ישגה ויעביר גם פרמטר של dogname וגם פרמטר של pat=dog וכו'.
 

Guy Yafe

New member
אולי משהו יותר REST-י?

/pets/dogs/kfitsi
למשל הייתי מחלק לפי הדוגמה שלך את החיות למודול היררכי ואז מעביר הכל דרך שורת הפקודה (אישית אני משתדל להעביר כמה שפחות query-parameters, אבל יש הרבה שיחלקו עליי: במקרה שתיארתי, אתה לא משתש בפרמטרים בכלל. השימוש היחיד שאני רואה לפרמטרים הוא עבור projection או pagination.
 
בדוגמה שנתתי ניסיתי לפשט,

ושורת פקודה ללא פרמטרים "תשגע" לי את הCGI (אולי אם אשים ? ולאחריו אמשיך שורת פקודה "רגילה", זה יסתדר).
הנקודה הקצת יותר מדויקת - יש מצב בו מעבירים לי מס"ד של אוביקט, (פרמטר יחיד), ויש מצב בו מעבירים לי את כל הגדרת האוביקט (נניח - אם מדובר על אדם, אז או מספר עובד, או שם פרטי, שם משפחה, מידת נעליים וחיית מחמד אהובה).
 

Guy Yafe

New member
לא מבין גדול ב-CGI

ולכן אני לא יודע איפה הסכנות.
אם אי אפשר לשים הכל ב - REST, אולי אתה יכול לקחת את הגדרת האובייקט (נניח ב-JSON), ולשמור אותה כ- BASE64 או משהו כזה. ככה יהיה לך פרמטר אחד בלבד.
אני לא יודע אם זה קולע לשאלה שלך או שאני בכלל לא בכיוון.
 
מצטרף לשאלה

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