Toto

軟件截圖:
Toto
軟件詳細信息:
版本: 0.12.0
上傳日期: 20 Feb 15
開發: JeremyOT
許可: 免費
人氣: 5

Rating: 4.0/5 (Total Votes: 1)

托托是旨在加速API服務器開發的小框架。它是建立在龍捲風的頂部,目前可以使用MySQL或MongoDB中作為後盾的數據庫。
安裝
安裝托托的最簡單的方法是使用點子。簡單的點子運行安裝-e混帳混帳+://github.com/JeremyOT/Toto.git#egg=Toto到你的機器上安裝托托模塊的最新版本。
用法
入門托托很容易,所有你需要做的是讓toto.TotoServer的新實例,並調用運行()。托托需要一個根模塊使用的方法查找。默認情況下,TotoServer會尋找一個模塊調用的方法。該method_module參數可用於指定名稱的另一個模塊。
配置
默認情況下,多多被配置為在端口8888上運行,並連接到本地主機上運行的MongoDB的服務器。配置可以通過三種方式進行,每個覆蓋的最後一個:
1.通過傳遞選項命名參數的構造函數TotoServer。
2.通過通過傳遞路徑的配置文件作為第一個參數到TotoServer構造一個配置文件。
3.用命令行參數(--option =“字符串值”--option = 1234)
調試時相結合的配置方法是有用的。用--help運行腳本,以查看可用參數的完整列表。
方法
方法是按名稱在每個請求引用。 A.B.C(或者A / B / C)映射到methods.a.b.c。要添加新的方法,增加模塊和包的方法(或指定)包(請參閱帳戶包供參考),並確保每個可調用的模塊定義調用(處理程序,參數),其中處理器是tornado.web的TotoHandler(子類。 RequestHandler的)處理當前請求。
handler.connection.db提供了直接訪問所使用的會話和賬目框架數據庫。
handler.session提供訪問當前會話或無,如果不進行身份驗證。可用的屬性:
- session.user_id - 當前用戶ID
- session.expires - Unix時間戳當會議將到期
- session.session_id - 當前會話ID
- session.state - 包含當前狀態的蟒蛇字典,你必須調用session.save_state()堅持任何改變
要強制認證的任何方法,裝飾用@ toto.invocation.authenticated的調用()函數。未經授權擅自調用驗證方法會返回一個未授權的錯誤。
所需的參數可以通過裝飾一個invoke()函數@ toto.invocation.requires指定(參數1,參數2,...)。
方法模塊可以通過裝飾一個invoke()函數@ toto.invocation.asynchronous利用旋風的非阻塞功能。當異步操作完成後,你必須調用handler.finish()以完成該請求。數據可以被發送到客戶端用handler.write()和handler.flush()。可選模塊可以實現on_connection_close()來清理任何資源,如果客戶端關閉連接。見RequestHandler.on_connection_close()的龍捲風文檔中獲取更多信息。
重要的是要記住,龍捲風要求所有調用寫(),刷新()和完成()在主線程上執行是非常重要的。你可以安排一個函數來主線程與IOLoop.instance()。add_callback(回調)上運行。
注意:從調用返回的任何數據到method.invoke()將被發送到客戶端為JSON數據和用來產生進行驗證的x TOTO-HMAC頭。這可能會導致異步方法的問題。如果method.invoke()返回無,一個響應將不會自動發送給客戶機並沒有任何的x TOTO-HMAC頭將生成。
要求
未經身份驗證的方法:
1.撥打服務與形式JSON對象:{“法”:“ABC”,“參數”:<參數>}。而不是傳遞了“方法”的說法在請求主體的,但也可以調用由網址的方法。等效於上述呼叫URL是http://service.com/service/a/b/c。
2.解析響應JSON。
帳戶創建:
1.呼叫account.create方法{“user_ID的”:,“密碼”:<密碼>}。
2.確認base64編碼響應主體的HMAC-SHA1與的關鍵在響應中的X TOTO-HMAC頭相匹配。
3.解析響​​應JSON。
4.讀取和存儲從響應對象SESSION_ID。
登錄:
1.呼叫account.login方法{“user_ID的”:,“密碼”:<密碼>}。
2.確認base64編碼響應主體的HMAC-SHA1與的關鍵在響應中的X TOTO-HMAC頭相匹配。
3.解析響​​應JSON。
4.讀取和存儲從響應對象SESSION_ID。
經過身份驗證的方法:
1.登錄(見-以上)。
2.呼叫服務,形式JSON對象:{“法”:“ABC”,“參數”:<參數>}與x TOTO-會話ID頭設置會話ID從登錄和x軸返回TOTO-HMAC頭設置為base64編碼HMAC-SHA1與生成的密鑰和JSON請求字符串的消息。
3.驗證base64編碼響應主體的HMAC-SHA1與的關鍵在響應中的X TOTO-HMAC頭相匹配。
4.解析響應JSON。
注意:這說明假設method.invoke()返回一個對象被序列化和發送到客戶端。返回無方法可以用於發送任何數據,必須進行相應的處理。
活動
有時你可能需要從一個請求到另一個發送事件。托托的toto.events.EventManager使這個容易。
發送事件使用EventManager.instance()。發('eventname已',參數)。放到EventManager採用序列化Python的的cPickle模塊,使您可以通過任何的cPickle可以處理的args。
要接收事件,您必須註冊EventManager.instance()處理程序。register_handler('eventname已',處理程序)。處理程序是一個函數,它有一個參數,將調用的args當放到EventManager發送事件'eventname已“。托托的事件進行了初步設計與非阻塞請求龍捲風的支持相結合。看到“聊天”模板的一個例子。
托托的事件系統支持發送在多個實例都在同一台機器上,並在分佈式系統中的事件。運行服務器--help更多的配置選項
系統守護進程
該托托服務器可以通​​過傳遞參數--daemon =啟動運行的守護進程。停止任何正在運行的進程傳遞--daemon =停止。這將停止共享指定PID的文件格式(默認toto.pid)的任何進程。所述--processes =選項可以用於指定服務器的實例數來運行。多個實例將在開始由--port指定的端口連續的端口上運行。如果0被用作參數--processes,多多將Python的多模塊檢測到每個CPU上運行一個進程。附加系統守護進程選項可以從--help查看。
客戶端
為了幫助您開始,JavaScript和iOS的客戶端庫正在開發中的https://github.com/JeremyOT/TotoClient-JS和https://github.com/JeremyOT/TotoClient-iOS分別。

特點

  • 在任何平台使用JSON,方便消費的客戶
  • 在輕鬆添加新的方法
  • 在建與HMAC-SHA1校驗用於身份驗證的要求簡單驗證
  • 在會話狀態持續性認證的請求
  • 在存儲在數據庫中的會話,以簡化跨服務器擴展

要求

  • 在Python中

意見 Toto

評論沒有發現
添加評論
打開圖片!