-
@mmmm לא חייבים לעבוד עם API רק שזו הפרקטיקה המומלצת (אם אני לא טועה ההרחבה שהבאת מתקשרת ישירות עם הmysql המרוחק, רק שזה לא מומלץ בכלל).
זה אומר שאתה צריך לפתח שני דברים:
אפליקציה לאנדרואיד - צד לקוח,
בקאנד - קוד צד שרת שישעה את הלוגיקה הדרושה לשמור ולאחזר נתונים.(API זה שם יפה לומר תוכנה עבור תוכנות. הקוד בצד השרת הוא תמיד תוכנה עבור תוכנות, כי המשתמשים לא מתקשרים איתו ישירות. בסופו של יום הAPI הזה הוא אתר אינטרנט שלא מבקרים בו אלא שולחים לו בקשות לפעולות ומקבלים תשובות של מידע).
אל תעתיק שום קוד מתאים מהאינטרנט. חפש שותף שיבנה את צד השרת, או תלמד קצת PHP או שפה אחרת שמתאימה לצד שרת (אני ממליץ על nodejs express).
הקוד שהבאת הוא נראה לי נורא, כי הוא מאפשר ללקוח להריץ מה שהוא רוצה במסד הנתונים כולל drop database.
אחרי תקופה של חודש (ואם אתה זריז אז אולי פחות) יהיה לך צד שרת איכותי (יחסית) כפי שאתה רוצה. אז תבוא לשאול פה איך מבצעים בקשת אינטרנט בג'אוה (זה ממש קל, אל תדאג). -
@dovid אמר בקישור אפליקציה למוסד נתונים mySQL:
(אם אני לא טועה ההרחבה שהבאת מתקשרת ישירות עם הmysql המרוחק, רק שזה לא מומלץ בכלל).
לא, מעלים את הקוד לשרת מתאימים את הסיסמה וכו'
ובהרחבה שמים את הקישור ל php ואת ה secre code וזה מתקשר איתו ב api.@dovid אמר בקישור אפליקציה למוסד נתונים mySQL:
(API זה שם יפה לומר תוכנה עבור תוכנות. הקוד בצד השרת הוא תמיד תוכנה עבור תוכנות, כי המשתמשים לא מתקשרים איתו ישירות. בסופו של יום הAPI הזה הוא אתר אינטרנט שלא מבקרים בו אלא שולחים לו בקשות לפעולות ומקבלים תשובות של מידע).
אני רוצה לבצע הכל בצד לקוח חוץ ממה שחייבים (תראה את ה api...)
@dovid אמר בקישור אפליקציה למוסד נתונים mySQL:
הקוד שהבאת הוא נראה לי נורא, כי הוא מאפשר ללקוח להריץ מה שהוא רוצה במסד הנתונים כולל drop database.
לא אמור להיות ללקוח גישה ל secret code (אם כי זה באמת שאלה איך להצפין את זה באפליקציה שלא יוכלו לעשות decompile ולשלוף את הנתונים...)
@dovid אמר בקישור אפליקציה למוסד נתונים mySQL:
אחרי תקופה של חודש (ואם אתה זריז אז אולי פחות) יהיה לך צד שרת איכותי (יחסית) כפי שאתה רוצה.
אני מעדיף לא ללמוד את זה, מעדיף כמה שפחות צד שרת (או web), יותר מסתדר עם java, ולכן אני רוצה רק api שאני ישלח לו את השאילתה והא יבצע, וגם עם שאילתות אני לא רוצה להתעסק ולכן אני מחפש משהו כמו ההרחבה רק ב java שיהיה לי קוד מוכן
האם זה אפשרי?
-
@mmmm כדי לפתח איזושהי אפליקציה סבירה דרוש ידע בסיסי. הגישה שלך היא לא להשקיע שום מאמץ מעבר למה שנראה לך הכרחי. אני מבטיח לך שהרתיעה שלך לא מוצדקת, המאמץ שידרש ממך להשקיע כדי להבין את התשובה של @dovid לעומק הוא אפילו לא אחוז ממה שתצטרך להשקיע באפליקציה שלך ברגע שמשהו לא ילך לך כשורה, ואם אין לך ידע בסיסי - זה יקרה.
אין לי שום מושג ב-java, ונראה לי שאני יכול לענות לך על השאלה השלישית בלי בעיה, קל וחומר ש @dovid יכול, אבל אין לך הרבה סיכוי לקבל כאן עזרה בגישה כזו.
-
@mmmm אמר בקישור אפליקציה למוסד נתונים mySQL:
לא, מעלים את הקוד לשרת מתאימים את הסיסמה וכו'
ובהרחבה שמים את הקישור ל php ואת ה secre code וזה מתקשר איתו ב api.אתה צודק וגם דוד צודק. זה לא סתירה.
הקוד שהבאת מקבל שאילתה ומעביר אותה ישירות ל-DB, אם כן אין ערך לעובדה שהוא API ולא גישה ישירה ל-DB.הייתי מתחיל לענות לך על השאלות אבל הגישה שלך קצת גורם לחוסר התלהבות... רק מצטרף לדברי קודמי שכבר ביארו בטוב טעם
-
@OdedDvir אמר בקישור אפליקציה למוסד נתונים mySQL:
הגישה שלך היא לא להשקיע שום מאמץ מעבר למה שנראה לך הכרחי.
@yossiz אמר בקישור אפליקציה למוסד נתונים mySQL:
הייתי מתחיל לענות לך על השאלות אבל הגישה שלך קצת גורם לחוסר התלהבות...
אתם לא הבנתם אותי כלל!
אני לא אמרתי שאני לא רוצה להשקיע באפליקציה, ההפך הוא הנכון, אני משקיע בה הרבה מאוד!.
אמרתי שאני לא רוצה להשקיע בלימוד צד שרת (web), אלא רוצה כמה שיותר להעביר את הכול לאפליקציה, כי אני יודע java ובזה אני משקיע ולא מתחשק לי להיכנס לנושא ה web שזה נושא בפני עצמו.@גמליאל אמר בקישור אפליקציה למוסד נתונים mySQL:
רק רציתי להזכיר את firebase שנותן שירותי api כולל אימות ואחסון למפתחי frontend.
במקרים מסויימים זה יכול להספיק בשביל האפליקציה שלך.עבדתי עם firebase, עד שעברתי ל mySQL לאחרונה, ואני לא מתחרט...
@yossiz אמר בקישור אפליקציה למוסד נתונים mySQL:
הקוד שהבאת מקבל שאילתה ומעביר אותה ישירות ל-DB, אם כן אין ערך לעובדה שהוא API ולא גישה ישירה ל-DB.
ההבדל שמסתבר שזה יותר מאובטח לא?
(האם גם בגישה שלי, לאחר שהבהרתי, לא מתאימה לקבלת תשובה?)
-
@mmmm אני מאוד אוהב אותך, הבנתי אותך היטב מייד ואני חושב שגם שאר הכותבים פה. אתה זה שמפספס אותנו, בגלל חוסר הבנה או רצון (ועל זה מגיע דיסלייק).
אתה לא מספיק מבין בתחום. שאלת, ועניתי לך יחד עם אחרים שמבינים בתחום. אתה יכול לבחור לומר "אבל XYZ!" בלי שום שינוי מעמדתך המקורית (וכך בחרת לעשות כמה פעמים), ואתה יכול ללמוד את דעתנו בעיון ולדון לו יצוייר שאנו צודקים, איך אתה מכלכל את צעדיך הבאים. -
@dovid אמר בקישור אפליקציה למוסד נתונים mySQL:
@mmmm אני מאוד אוהב אותך, הבנתי אותך היטב מייד ואני חושב שגם שאר הכותבים פה. אתה זה שמפספס אותנו, בגלל חוסר הבנה או רצון (ועל זה מגיע דיסלייק).
אתה לא מספיק מבין בתחום. שאלת, ועניתי לך יחד עם אחרים שמבינים בתחום. אתה יכול לבחור לומר "אבל XYZ!" בלי שום שינוי מעמדתך המקורית (וכך בחרת לעשות כמה פעמים), ואתה יכול ללמוד את דעתנו בעיון ולדון לו יצוייר שאנו צודקים, איך אתה מכלכל את צעדיך הבאים.אבל זאת הבעיה שלא הבנתי את דעתכם. (אני משער שלא הבנתי את דעתכם כי אני לא חושב שאני חולק על דעתכם, ואם אתה אומר שאני חולק על דעתכם כנראה שאו שאני לא הבנתי אותכם או שאתם לא הבנתם אותי)
-
@mmmm אמר בקישור אפליקציה למוסד נתונים mySQL:
חוץ מזה שזה יותר מאובטח...
אני לא רואה כרגע שום סיבה שזה יהיה יותר מאובטח מחיבור ישיר ל-DB.
במקומך הייתי מעדיף גישה ישירה ל-DB מאשר קוד PHP שמגיע ממקור לא מוכרלגבי השאלה המקורית שלך:
הקוד הזה מצפה לקבל בקשת POST עם שני שדות ב-body א) key ב) query
דוגמה לבקשה:כתובת: http://your-domain.com/bad-code.php
דאטה:
key: secret query: DROP TABLE USERS; -- haha
בבקשת ה-HTTP השדות יהיו מקודדים ככה:
key=secret&query=DROP%20TABLE%20USERS%3B%20--%20haha
קוד לדוגמה ב-JAVA שמממש את זה פה (ד"ה Sending a simple form)
אין בכל האמור הסכמה כלשהו על צורת העבודה שלך, זה גישה לא נכונה להשתמש בקוד ה-PHP הזה
-
@mmmm חלילה, לא בגלל שאתה חולק. בגלל השאיפה.
השאיפה: למצוא רכיב מוכן וקל לצד השרת, לדעת מה לשלוח ולמלא את המשתנים, ולהיות פנוי כל כולך לאפליקציה. אני מבין ומזדהה מאוד עם הצורך, אבל לעיתים כח הרצון שמאחורי שאיפה חוסם אותך מלהבין תשובות שלא עולות איתה בקנה אחד. -
@mmmm אמר בקישור אפליקציה למוסד נתונים mySQL:
ההבדל שמסתבר שזה יותר מאובטח לא?
העקשנות שלך לוותר על ה-API בעייתית מצד האבטחה, וזה לא דבר קטן בכלל. אבל אבטחה היא רק אחד מהיתרונות. יתרון מאוד חשוב הוא צמידות רפויה בין שכבת ממשק המשתמש לבין שכבת הנתונים, כך שמחר אם תחליט שאתה בסוף הולך על בסיס נתונים של מונגו, למשל, לא תצטרך לשנות כלום בממשק.
גם בגישה שלך, אני לא מבין למה לא להשתמש בקוד java טהור כדי לגשת לנתונים, מבלי צורך ב-php. לדוגמא:
https://www.javatpoint.com/example-to-connect-to-the-mysql-database
עריכה: אני רואה שכבר קדמני @yossiz ... -
@mmmm שתבין מה הבעיה בשאלה שלך:
אתה מפגין חוסר ידע בסיסי בתכנות. סליחה שאני מדבר בצורה כל כך ישירה. אבך כך הם פני הדברים.
אני יכול לומר בכנות שאני ח"ו לא מזלזל במי שלא יודע תכנות, ואני אף מעריך אנשים כאלו.
אבל אם אתה רוצה לתכנת, אתה צריך להכיר שזה לא לגו, ושיש מה ללמודאם היית מודה על האמת שאתה לא מכיר דברים והיית מבקש ללמוד איך הצורה הנכונה, ניחא
אבל באת לבקש שנעזור לך לעשות דברים בצורה לא נכונה ושאתה תחליט מה מותר לנו להביא לך בתור תשובה ומה לא, זה כבר הפריע לכמה חברים וכנראה יש דברים בגו -
@yossiz תודה רבה!!!
@dovid אמר בקישור אפליקציה למוסד נתונים mySQL:@mmmm חלילה, לא בגלל שאתה חולק. בגלל השאיפה.
השאיפה: למצוא רכיב מוכן וקל לצד השרת, לדעת מה לשלוח ולמלא את המשתנים, ולהיות פנוי כל כולך לאפליקציה. אני מבין ומזדהה מאוד עם הצורך, אבל לעיתים כח הרצון שמאחורי שאיפה חוסם אותך מלהבין תשובות שלא עולות איתה בקנה אחד.עכשיו הבנתי את הנקודה.
(לא הבנתי בכלל מה מפריע לכם בגישה שלי)
אם כי לפי זה אין לדבר סוף כי יש מלא דברים שאני יצטרך לעבוד איתם אם כל דבר אני ילמד לעומק אני לא יסיים... אני מבין שאת הדברים שהם לא בסיס הפיתוח אני ינסה כמה שפחות להתעסק@OdedDvir אמר בקישור אפליקציה למוסד נתונים mySQL:
העקשנות שלך לוותר על ה-API בעייתית מצד האבטחה, וזה לא דבר קטן בכלל
טוב אני יסביר, האפליקציה שאני כרגע בונה לא צריכה להיות מאובטחת כיוון שהיא תהיה רק לאנשים מסוימים, שאני סומך עליהם וגם שלכל אחד יש מוסד נתונים משלו כך שהוא יכול להזיק רק לעצמו...
אבל אם אני יבין את הרעיון אני יוכל לשדרג ולאבטח יותר.@OdedDvir אמר בקישור אפליקציה למוסד נתונים mySQL:
כך שמחר אם תחליט שאתה בסוף הולך על בסיס נתונים של מונגו, למשל, לא תצטרך לשנות כלום בממשק.
לא משנה לי, ההפך היות ואני לא יודע Php יותר קל לי לשנות את הממשק משתמש מלשנות את ה php... (בעצם אן שום הבדל חוץ מזה שאני יצטרך לעדכן את האפליקציה וזה לא מפריע לי)
@OdedDvir אמר בקישור אפליקציה למוסד נתונים mySQL:
גם בגישה שלך, אני לא מבין למה לא להשתמש בקוד java טהור כדי לגשת לנתונים, מבלי צורך ב-php. לדוגמא:
לא ידעתי שאפשרי, כפי שאמרתי גיגלתי ולא מצאתי, כבר אני יעבור על הקישור
@yossiz אמר בקישור אפליקציה למוסד נתונים mySQL:
אתה מפגין חוסר ידע בסיסי בתכנות. סליחה שאני מדבר בצורה כל כך ישירה. אבך כך הם פני הדברים.
אני יכול לומר בכנות שאני ח"ו לא מזלזל במי שלא יודע תכנות, ואני אף מעריך אנשים כאלו.
אבל אם אתה רוצה לתכנת, אתה צריך להכיר שזה לא לגו, ושיש מה ללמודאשמח ללמוד.
@yossiz אמר בקישור אפליקציה למוסד נתונים mySQL:
אם היית מודה על האמת שאתה לא מכיר דברים והיית מבקש ללמוד איך הצורה הנכונה
את זה הבנתי מ @dovid השאלה היא למה באמת איך שרציתי לעשות לא טוב
@yossiz אמר בקישור אפליקציה למוסד נתונים mySQL:
ושאתה תחליט מה מותר לנו להביא לך בתור תשובה ומה לא,
לא הבנת אותי נכון,אני שאלתי איך אני יכול לכתוב שאילתות ב java ושזה יישלח למוסד נתונים.
וראה שבפוסט למעלה כתבת את התשובה.
ובעצם מי שפיתח את ההרחבה ואת הקוד php כנראה חשב כמוני
(אני לא כופר בזה שאתם יותר מומחים ממני רק אני מנסה למצוא פתרון שיהיה לי יותר קל)תחשוב שבאחד הפרויקטים שלך היית צריך לתקשר עם אפליקציה האם היית לומד java רק בשביל לתקשר איתה או שהיית בונה את כל הקוד בשפה שאתה מכיר ורק את הצורך עצמו היית מבצע ב java?
-
-
-
@OdedDvir אמר בקישור אפליקציה למוסד נתונים mySQL:
גם בגישה שלך, אני לא מבין למה לא להשתמש בקוד java טהור כדי לגשת לנתונים, מבלי צורך ב-php. לדוגמא:
https://www.javatpoint.com/example-to-connect-to-the-mysql-databaseאם כן זה אומר ששיטה שלי כן נכונה לא?
-
@mmmm אמר בקישור אפליקציה למוסד נתונים mySQL:
אשמח ללמוד.
אם ככה יש לך עוד המון המון עבודה לפניך... אי אפשר לקפוץ ישר לסוף. זו עבודה מהנה ומשתלמת, אבל בתנאי שתלך לפי הסדר ותלמד בצורה נכונה
ובעצם מי שפיתח את ההרחבה ואת הקוד php כנראה חשב כמוני
מי שפיתח את ההרחבה הוא מתכנת גרוע אין שום חיוב ללמד עליו זכות, והקוד גם מיועד עבור אנשים שאוהבים לשחק עם לגו ולא מתכנתים
היציאה מארגז החול של קודולור יכול להיות טראומטי, בפרט אחרי המקלחת הקרה שאתה מקבל כאן... אבל באמת אי אפשר ללמוד כלל שום תכנות מהפלטפורמה ההיא, זה לא צעד ראשון לקראת תכנות, זה מקום שמחזיר אותך אחורה כמה צעדיםאני שאלתי איך אני יכול לכתוב שאילתות ב java ושזה יישלח למוסד נתונים
והתשובה היא: "אין לנו חשק לעזור לך לעשות דברים בצורה לא נכונה".
וראה שבפוסט למעלה כתבת את התשובה
עדיין חסר המון בתשובה שלי, לא כתבתי שאת הדאטה תקבל בפורמט CSV, ואיך לפענח את זה, ולא כתבתי מה תקבל במקרה של שגיאה ועוד
תחשוב שבאחד הפרויקטים שלך היית צריך לתקשר עם אפליקציה האם היית לומד java רק בשביל לתקשר איתה או שהיית בונה את כל הקוד בשפה שאתה מכיר ורק את הצורך עצמו היית מבצע ב java?
אין שום בעיה בזה, ואתה צודק שאתה צריך לנסות לכתוב את הרוב בשפה שאתה מכיר יותר. אבל זה עוד לא מתיר לעקוף כללי יסוד בסיסיים
-
@mmmm אמר בקישור אפליקציה למוסד נתונים mySQL:
האפליקציה שאני כרגע בונה לא צריכה להיות מאובטחת כיוון שהיא תהיה רק לאנשים מסוימים, שאני סומך עליהם וגם שלכל אחד יש מוסד נתונים משלו כך שהוא יכול להזיק רק לעצמו...
אולי בכלל אפשר לשמור את הנתונים על המכשיר במסד sqlite? האם זה חייב להיות בשרת מרוחק?
-
@yossiz אמר בקישור אפליקציה למוסד נתונים mySQL:
היציאה מארגז החול של קודולור יכול להיות טראומטי,
א. למדתי java K פני שנכנסתי לקדולר, אבל יצרתי תוכנות לא אפליקציות
@yossiz אמר בקישור אפליקציה למוסד נתונים mySQL:
אבל באמת אי אפשר ללמוד כלל שום תכנות מהפלטפורמה ההיא
הפלטפורמה הזאת זה java שהמירו אותה לגרפי, אבל הרעיון אותו רעיון (כמובן שבקשר לרמת התיכנות היא באמת בציון מינוס...)
@yossiz אמר בקישור אפליקציה למוסד נתונים mySQL:
זה מקום שמחזיר אותך אחורה כמה צעדים
לכן עברתי...
@yossiz אמר בקישור אפליקציה למוסד נתונים mySQL:
והתשובה היא: "אין לנו חשק לעזור לך לעשות דברים בצורה לא נכונה".
נשמע ממכם שזה כמו שאני ישאל איך אני מתכנת html בלי לדעת צד שרת...
אבל עד כמה שהיה ידוע לי אפליקציה היא לא מקבילה לדף אינטרנט אלא פועלת עצמאית רק שכאשר היא צריכה מידע מהאינטרנט היא ניגשת ל api ולקחת ממנו את המידע, אני טועה?@yossiz אמר בקישור אפליקציה למוסד נתונים mySQL:
לא כתבתי שאת הדאטה תקבל בפורמט CSV
אני לא רוצה csv... אבל נכון.
@yossiz אמר בקישור אפליקציה למוסד נתונים mySQL:
מה תקבל במקרה של שגיאה
אני לא יקבל 200 זה מספיק לי.
@yossiz אמר בקישור אפליקציה למוסד נתונים mySQL:
אבל זה עוד לא מתיר לעקוף כללי יסוד בסיסיים
ok, בקיצור אני צריך לדעת לתכנת צד שרת?