Toto

צילום מסך תוכנה:
Toto
פרטי תוכנה:
גרסה: 0.12.0
טען תאריך: 20 Feb 15
מפתחים: JeremyOT
רשיון: ללא תשלום
פופולריות: 5

Rating: 4.0/5 (Total Votes: 1)

הטוטו הוא מסגרת קטנה שנועדה להאיץ את פיתוח שרת API. הוא נבנה על גבי טורנדו וכיום ניתן להשתמש גם MySQL או MongoDB כבסיס נתוני גיבוי.
התקנה
הדרך הפשוטה ביותר להתקנת הטוטו היא עם פיפס. פשוט להפעיל פיפס להתקין git + git -e: //github.com/JeremyOT/Toto.git#egg=Toto להתקין את הגרסה האחרונה של מודול הטוטו במחשב שלך.
שימוש
תחילת עבודה עם הטוטו היא קלה, כל מה שאתה צריך לעשות הוא להפוך את מופע חדש של toto.TotoServer וקורא לרוץ (). טוטו צריך מודול שורש לשימוש עבור בדיקת שיטה. כברירת מחדל, TotoServer יחפש שיטות מודול שנקרא. פרמטר method_module ניתן להשתמש כדי לציין מודול נוסף בשמו.
תצורה
כברירת מחדל, טוטו מוגדר להפעיל ביציאה 8888 ולהתחבר לשרת MongoDB פועל על localhost. תצורה יכולה להתבצע בשלוש דרכים עם כל דריסה האחרונה:
1. על ידי העברת אופציות כפרמטרים בשם לבנאי TotoServer.
2. באמצעות קובץ תצורה על ידי עובר נתיב לקובץ config כפרמטר הראשון לבנאי TotoServer.
3. עם פרמטרים של שורת הפקודה (--option = 'ערך מחרוזת "--option = 1234)
שילוב שיטות התצורה יכול להיות שימושי כאשר באגים. הפעל את התסריט שלך עם --help כדי לראות רשימה מלאה של פרמטרים זמינים.
שיטות
שיטות הפניה בשם בכל בקשה. a.b.c (או / b / c) מפות לmethods.a.b.c. כדי להוסיף שיטות חדשות, להוסיף מודולים וחבילות לשיטות (או שצוינה) חבילה (ראה חבילת החשבון להתייחסות) ולהבטיח שכל מודול callable מגדיר להפעיל (מטפל, פרמטרים) שבו מטפל היא TotoHandler (הסדרה של tornado.web. RequestHandler) טיפול הבקשה הנוכחית.
handler.connection.db מספק גישה ישירה לבסיס הנתונים ששמשו את מסגרת המפגשים והחשבונות.
handler.session מספק גישה למושב או אף הנוכחיים אם לא מאומת. תכונות זמינות:
- Session.user_id - זיהוי המשתמש הנוכחי
- Session.expires - חותם זמן יוניקס כאשר הפגישה תפקע
- Session.session_id - מזהה הפעלה הנוכחית
- Session.state - dict פיתון המכיל את המצב הנוכחי, אתה חייב לקרוא session.save_state () להתמיד כל שינוי
לאכוף אימות עבור כל שיטה, לקשט את הפונקציה ב() עם @ toto.invocation.authenticated. ניסיונות בלתי מורשים לקרוא שיטות אימות יחזירו שגיאה לא מורשה.
יכולים להיות מוגדרים פרמטרים הנדרשים על ידי לקשט פונקציה ב() עם @ toto.invocation.requires (param1, param2, ...).
מודולים שיטה יכולים לנצל את התכונות ללא החסימה של טורנדו על ידי לקשט פונקציה ב() עם @ toto.invocation.asynchronous. כאשר פעולת אסינכרוני היא להשלים אתה חייב לקרוא handler.finish () כדי לסיים את הבקשה. ניתן לשלוח נתונים ללקוח עם handler.write () וhandler.flush (). לחלופין, מודולים יכולים ליישם on_connection_close () כדי לנקות את כל משאבים אם הלקוח סוגר את החיבור. ראה RequestHandler.on_connection_close () בתיעוד טורנדו לקבלת מידע נוסף.
חשוב לזכור כי טורנדו דורש שכל השיחות לכתוב (), () וגימור סומק () מבוצעים על החוט הראשי. באפשרותך לתזמן פונקציה לרוץ על החוט הראשי עם IOLoop.instance (). Add_callback (callback).
הערה: כל הנתונים שהוחזרו מקריאה לmethod.invoke () יישלחו ללקוח כנתונים JSON ולהשתמש בם כדי ליצור כותרת x-הטוטו-HMAC לאימות. זה עלול לגרום לבעיות עם שיטות אסינכרוני. אם method.invoke () מחזיר אף אחד, תגובה לא תישלח אוטומטית ללקוח ולא כותרת x-הטוטו-HMAC תופק.
בקשות
שיטות אימות עישון:
שירות שיחות 1. עם אובייקט JSON בצורה: {"שיטה": "ABC", "פרמטרים": <פרמטרים>}. במקום להעביר את הטיעון "שיטה" בגוף הבקשה, אפשר גם לקרוא לשיטות על ידי כתובת אתר. שוות ערך URL לשיחה לעיל הוא http://service.com/service/a/b/c.
2. תגובה לנתח JSON.
יצירת חשבון:
שיטת account.create שיחת 1. עם {"USER_ID": , "סיסמא": <סיסמא>}.
2. ודא שbase64 מקודד HMAC-SHA1 של גוף התגובה עם כמפתח תואם לכותרת x-הטוטו-HMAC בתגובה.
3. תגובה לנתח JSON.
4. קרא וחנות session_id מאובייקט התגובה.
התחבר:
שיטת account.login שיחת 1. עם {"USER_ID": , "סיסמא": <סיסמא>}.
2. ודא שbase64 מקודד HMAC-SHA1 של גוף התגובה עם כמפתח תואם לכותרת x-הטוטו-HMAC בתגובה.
3. תגובה לנתח JSON.
4. קרא וחנות session_id מאובייקט התגובה.
שיטות אימות:
1. כניסה (ראה מעל).
שירות שיחה 2. עם אובייקט JSON בצורה: {"שיטה": "ABC", "פרמטרים": <פרמטרים>} עם כותרת x-טוטו-זיהוי ההפעלה מוגדרת מזהה ההפעלה חזר מהתחברות וה- x כותרת טוטו-HMAC מוגדר base64 מקודד HMAC-SHA1 שנוצרה עם כמפתח ומחרוזת בקשת JSON כהודעה.
3. ודא שbase64 מקודד HMAC-SHA1 של גוף התגובה עם כמפתח תואם לכותרת x-הטוטו-HMAC בתגובה.
4. תגובה לנתח JSON.
הערה: הוראות אלה מבוססות על הנחה שmethod.invoke () מחזיר אובייקט להיות בהמשכים ונשלח ללקוח. שיטות שתחזורנה אף יכולות לשמש לשלוח את כל הנתונים ויש לטפל בם בהתאם.
אירועים
לפעמים ייתכן שתצטרך לשלוח את האירועים מבקשה אחד למשנהו. toto.events.EventManager של הטוטו עושה את זה קל.
כדי לשלוח EventManager.instance שימוש אירוע (). לשלוח ('eventname', args). EventManager משתמש מודול cPickle של פייטון בהמשכים, כך שתוכל לעבור כל דבר cPickle יכול להתמודד כargs.
כדי לקבל אירוע, עליך לרשום מטפל עם EventManager.instance (). ('Eventname', מטפל) register_handler. מטפל הוא פונקציה שלוקחת את אחד פרמטרים וייקראו עם args כאשר EventManager שולח אירוע עם 'eventname'. האירועים של הטוטו בעיקר נועדו להיות משולב עם התמיכה של טורנדו לבקשות ללא חסימה. ראה את התבנית "צ'אט" לדוגמא.
מערכת האירוע של הטוטו תומכת בשליחת אירועים ברחבי מופעים מרובים שניהם באותו מכשיר ובמערכת מופצת. להפעיל את השרת שלך עם --help ליותר אפשרויות תצורה
Daemonization
שרת הטוטו ניתן להפעיל כשד על ידי העברת טיעון --daemon = ההתחלה. כדי לעצור את כל תהליכים הפועלים לעבור --daemon = עצירה. זה יעצור את כל תהליכים שחולקים את הפורמט שצוין pid הקובץ (toto.pid ברירת מחדל). --processes = אופציה ניתן להשתמש כדי לציין את מספר מקרי שרת לרוץ. מספר מופעים יהיו לרוץ ביציאות רציפות החל משעת היציאה שצוינה על ידי --port. אם 0 משמש כטיעון ל--processes, הטוטו ירוץ תהליך אחד לכל מעבד כפי שזוהה על ידי מודול ריבוי של פייתון. ניתן לצפות באפשרויות daemonization נוספות מ--help.
לקוחות
כדי לעזור לך להתחיל, ספריות הלקוח JavaScript ו- iOS בפיתוח ובhttps://github.com/JeremyOT/TotoClient-JS https://github.com/JeremyOT/TotoClient-iOS בהתאמה.

מאפיינים :

  • שימושי JSON לצריכה קלה על ידי לקוחות על כל פלטפורמה
  • קל להוסיף שיטות חדשות
  • אימות פשוט נבנתה בעם אימות HMAC-SHA1 לבקשות מאומתים
  • התמדת מדינת מושב לבקשות מאומתת
  • הפעלות תישמרנה במאגר מידע כדי לפשט קנה מידה בין שרתים

דרישות :

  • Python

תגובות ל Toto

תגובות לא נמצא
להוסיף הערה
הפעל את התמונות!