לקוח גרפי ל xml-rpc

כאשר הקמתי את העסק שלי, נמאס לי לעבוד בצורה סיזיפית כאשר הייתי צריך לבדוק אפליקציות שאני יוצר אשר מדברות בXML-RPC, והחלטתי ליצור לקוח כלשהו אשר יצליח לתת לי מענה בנושא.

החלטתי ללכת על לזרוס היות ודבר ראשון זה לקוח גרפי (במקום ליצור ראשי HTTP ב telnet או עבודה עם live http headers ב Firefox שהייתי עושה עד אז) אשר לדעתי עדיף על פני סביבה טקסטואלית, כלומר כאן היה מקום לדעתי ללקוח גרפי, וגם בזכות שיחסית זה לא דרש ממני הרבה עבודה. למעשה זה לקח ממני שעה כולל תיקון באג בספריית ה HTTP שעד אז לא הכרתי את הקוד שלה (שלקח את רוב הזמן שלי).

למעשה התמונה שאתם רואים בצד ימין, מציגה את העיצוב שעשיתי בתכנון הראשון, והוספתי מינימום של מינימום קוד בשביל לשלוח בקשה ולקרוא את התגובה וכמו כן גם להכניס לוג (שנועד בכלל במקור לדבג את הקוד שלי, אבל התגלה כמשהו מאוד יעיל כאשר יש בעיה כלשהי). יותר מאוחר גם הכנסתי יותר קוד אשר שומר הגדרות שונות, למשל שורת הכתובת למעלה, שומרת את כל התכובות שמכניסים לה, אבל אם הכתובת (המלאה) קיימת כבר, אז יהיה רק רישום אחד שלה ללא שכפול (זה נעשה בהגדרת תכונה בכלל ולא בקוד שלי). אני יכול לשמור את הxmlrpc שיצרתי גם כקובץ (או לפתוח קובץ חדש), ולשמור איזה קובץ היה פתוח ולפתוח אותו בשנית אחרי שמפעילים שוב את התוכנה, לשמור את התשובות של הצד השני לקובץ, ועוד הרבה יכולות אחרות, ובכך התוכנה הגיעה לשלמות לצרכים שלי.

אחד הדברים המדהימים שגיליתי על התוכנה אשר הודרה כמובן באמצעות FPC, היא שלמרות שהתוכנה עברה 4 הפצות לינוקס (אובונטו, מנדריבה, דביאן וארץ') ובתוך ההפצות גם גרסאות שונות של אותה הפצה, ו3 מחשבים שונים (מחשב שולחני, מחשב נישא, ומחשב של לקוח בתוך VirtualBox -> כן גם לקוחות שלי השתמשו בה לבדיקות קוד שלהם), אבל כל עוד ה API של GTK2 (במקרה שלי -> אני מהדר לסביבה הגרפית הזו) לא השתנה, התוכנה עבדה ללא בעיה. רק כאשר ה API של GTK2 השתנה קצת, הייתי צריך להדר את התוכנה מחדש בלי לשנות את הקוד שלי, והכל חזר להיות רגיל.

אז אני עובד עם התוכנה הזו שכתבתי לפני 3.5 שנים (או קצת יותר), ואז התחלתי לכתוב גם תוכנות אשר משתמשות ב REST וב JSON לבקשת הלקוחות, ופתאום התוכנה לצערי כבר לא מתאימה לזה. אז לקחתי את הקוד והתחלתי לעשות לו refactoring וליצור לו תמיכה במספר RPC שונים כדוגמת JSON בנוסף ל XMLRPC, ושליחה של טקסט נקי (text/plain). כרגע נשאר לי להוסיף תמיכה לעבודה עם REST "נקי" (כלומר פרמטרים ועבודה עם GET, POST, DELETE וכו'), והתוכנה שוב תהיה שלמה לצרכים שלי. יותר מזה , הרבה מעבודות ה refactoring היו בשביל להחליף ספריית HTTP. אמנם אני לא מת עליה (על הספרייה החדשה), אבל היא גמישה יותר לצרכים שלי (עד שאלס ישכתב את הספריית HTTP ואולי אחזור לlNet),  ובנוסף הגישה עכשיו של התוכנה גמישה יותר, כך שניתן להוסיף לה תכונות חדשות כאשר הדבר לא ידרוש ממני לשכתב קוד בצורה דרסטית כמו העבודה כאן.

בעקבות השכתוב המסיבי שאני עושה, החלטתי לשחרר כקוד פתוח (GPL v2) את הקוד הישן שאולי יכול לעזור לאחרים, ובכלל למה להרוג דברים בטרם עת ?

את הקוד תוכלו למצוא בכתובת הבאה:

https://github.com/ik5/xmlrpc-client-ui

2 מחשבות על “לקוח גרפי ל xml-rpc

  1. meir

    קצת לא קשור, אך מדוע לא השתמשת ב-TreeView (אולי בנוסף/מקביל) לייצוג המידע ? נראה טבעי יותר עבור המבנה.

    בטח רצית להזין את המידע דרך עורך טקסט🙂

  2. ik_5 מאת

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

כתיבת תגובה

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

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת / לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת / לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת / לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת / לשנות )

מתחבר ל-%s