Toto

Software kuvakaappaus:
Toto
Ohjelmiston tiedot:
Versio: 0.12.0
Lähetyksen päivämäärä: 20 Feb 15
Kehittäjä: JeremyOT
Lupa: Vapaa
Suosio: 5

Rating: 4.0/5 (Total Votes: 1)

Toto on pieni kehys tarkoituksena on nopeuttaa sovellusliittymäpalvelin kehitystä. Se on rakennettu päälle Tornado ja voi tällä hetkellä käyttää joko MySQL tai MongoDB pohjana tietokanta.
Asennus
Yksinkertaisin tapa asentaa Toto on kanssa pip. Yksinkertaisesti ajaa PIP asentaa -e git + Git: //github.com/JeremyOT/Toto.git#egg=Toto asentaa uusimman version Toto moduulin koneellasi.
Käyttö
Aloittaminen Toto on helppoa, sinun tarvitsee tehdä, on tehdä uusi esiintymä toto.TotoServer ja soittaa run (). Toto tarvitsee root moduuli käyttää menetelmää haku. Oletuksena TotoServer etsii moduuli nimeltään menetelmiä. Method_module parametri voidaan määrittää toisen moduulin nimen.
Asetukset
Oletuksena Toto on määritetty toimimaan porttiin 8888 ja yhteyden MongoDB palvelin käynnissä localhost. Kokoonpano voidaan suorittaa kolmella eri tavalla jokaisen pakottavista viimeksi:
1. kulkee vaihtoehtoja nimetty parametreja TotoServer rakentaja.
2. Kautta asetustiedosto viemällä polku asetustiedostoon ensimmäisenä parametrina TotoServer rakentaja.
3. komentoriviparametreilla (--option = "merkkijono arvo" --option = 1234)
Yhdistämällä kokoonpano menetelmät voivat olla hyödyllisiä kun virheenkorjaus. Tee script help nähdä täydellisen luettelon käytettävissä parametreja.
Menetelmät
Menetelmät ovat viitata nimen kussakin pyynnön. a.b.c (tai / b / c) karttoja methods.a.b.c. Voit lisätä uusia menetelmiä, lisätä moduuleja ja paketteja menetelmiä (tai määritelty) paketti (katso tili paketti viite) ja varmistaa, että jokainen vaadittaessa maksettavaa moduuli määrittelee vedota (handler, parametrit) jos käsittelijä on TotoHandler (alaluokka tornado.web. RequestHandler) käsittely nykyisen pyynnöstä.
handler.connection.db tarjoaa suoran pääsyn käyttämään tietokantaan istuntoja ja tilinpidon.
handler.session tarjoaa pääsyn nykyisen istunnon tai ei mitään ole todennettu. Saatavilla ominaisuudet:
- Session.user_id - nykyinen käyttäjätunnus
- Session.expires - unix aikaleiman, kun istunto päättyy
- Session.session_id - nykyisen istunnon ID
- Session.state - python dict sisältävä nykytilaa, sinun täytyy soittaa session.save_state () säilyä muutoksia
Valvomaan autentikointi mitään menetelmää, koristella vetosivat () toiminto @ toto.invocation.authenticated. Luvaton yritetty soittaa todennettu menetelmiä palaa ei sallittu virhe.
Tarvittavat parametrit voidaan määrittää koristelu vetosivat () toiminto @ toto.invocation.requires (param1, param2, ...).
Menetelmä moduulit voidaan hyödyntää Tornado estoton ominaisuuksia koristamaan vetosivat () toiminto @ toto.invocation.asynchronous. Kun asynkroninen on valmis sinun täytyy soittaa handler.finish (), jotta loppuun pyyntöön. Tiedot voidaan lähettää asiakkaalle handler.write () ja handler.flush (). Vaihtoehtoisesti, moduulit voidaan toteuttaa on_connection_close () siivota mitään resursseja, jos asiakas sulkee yhteyden. Katso RequestHandler.on_connection_close () in Tornado dokumentaatiosta lisätietoja.
On tärkeää muistaa, että Tornado edellyttää, että kaikki puhelut kirjoittaa (), väri () ja viimeistely () suoritetaan lankana. Voit ajoittaa toiminto ajaa lanka kanssa IOLoop.instance (). Add_callback (soittopyyntö).
Huomaa: Kaikki tiedot palasi puhelun method.invoke () lähetetään asiakkaalle JSON tietoja ja käyttää tuottamaan X-Toto-hmac header tarkastettavaksi. Tämä voi aiheuttaa ongelmia asynkronisen menetelmiä. Jos method.invoke () palauttaa None, vastaus ei automaattisesti lähetetään asiakkaalle, eikä X-Toto-hmac otsikko syntyy.
Tarvitaan
Kaikki tunnistamattomat menetelmiä:
1. Soita palvelu JSON esineen muodossa: {"menetelmä": "ABC", "parametrit": }. Sen sijaan kulkee "menetelmä" argumentti pyynnössä elin, se on myös mahdollista soittaa menetelmien URL. URL vastaa edellä puhelu on http://service.com/service/a/b/c.
2. Parse vastauksen JSON.
Tilin luominen:
1. Soita account.create menetelmällä {"user_id": , "salasana": }.
2. Varmista, että base64 koodattu hmac-SHA1 vasteen kehon kuin avain vastaa X-Toto-hmac otsikon vastaus.
3. Parse vastauksen JSON.
4. Lue ja tallentaa session_id päässä vastaus esine.
Kirjaudu Sisään:
1. Soita account.login menetelmällä {"user_id": , "salasana": }.
2. Varmista, että base64 koodattu hmac-SHA1 vasteen kehon kuin avain vastaa X-Toto-hmac otsikon vastaus.
3. Parse vastauksen JSON.
4. Lue ja tallentaa session_id päässä vastaus esine.
Vahvistetut menetelmät:
1. Kirjaudu (katso edellä).
2. Soita palvelu JSON esineen muodossa: {"menetelmä": "ABC", "parametrit": } x-Toto-istunto id otsikon asetettu istuntotunnus palasi kirjautuminen ja x- Toto-hmac otsikon asetettu base64 koodattu hmac-SHA1 tuotettu kuin avain ja JSON pyyntö merkkijonon viestin.
3. Varmista, että base64 koodattu hmac-SHA1 vasteen kehon kuin avain vastaa X-Toto-hmac otsikon vastaus.
4. Parse vastauksen JSON.
Huomaa: Näissä ohjeissa oletetaan, että method.invoke () palauttaa esineen sarjoittaa ja lähetetään asiakkaalle. Menetelmät, jotka palauttavat Ei voi käyttää lähettää tietoja ja sitä on käsiteltävä sen mukaisesti.
Tapahtumat
Joskus saatat joutua lähettämään tapahtumia yhdestä pyynnöstä toiselle. Toton toto.events.EventManager tekee tämän helpoksi.
Voit lähettää tapahtuman käyttöön EventManager.instance (). Lähetä ("eventname ', args). EventManager käyttää Pythonin cPickle moduuli sarjoittamista joten voit siirtää mitään cPickle voi käsitellä kuin args.
Jos haluat saada tapahtuma, sinun täytyy rekisteröityä käsittelijä kanssa EventManager.instance (). Register_handler ("eventname ', handler). käsittelijä on toiminto, joka kestää yhden parametrit ja kutsuttava args kun EventManager lähettää tapahtuman "eventname". Toton tapahtumia ensisijaisesti suunniteltu yhdistettäväksi tornado tuki estoton pyyntöjä. Katso "chat" mallin esimerkki.
Toton tapahtuma järjestelmä tukee lähetystapahtumista poikki useita esiintymiä sekä samalla koneella ja hajautetussa järjestelmässä. Tee palvelimen help lisää asetuksia
Daemonization
Toto-palvelin voi käynnistää daemon viemällä väite --daemon = alku. Voit lopettaa kaikki käynnissä olevat prosessit kulkevat --daemon = seis. Tämä pysäyttää kaikki prosessit, jotka jakavat tietyn pid tiedostomuoto (oletus toto.pid). --processes = Mahdollisuutta voidaan käyttää määrittämään useita palvelinilmentymistä juosta. Useita tapauksia ajetaan peräkkäiseen satamiin alkaen satamaan määritelty --port. Jos 0 käytetään argumenttina --processes, Toto ajaa yksi prosessi per CPU havaittuna Pythonin moniprosessointi moduuli. Muita daemonization vaihtoehtoja voidaan tarkastella help.
Asiakkaat
Voit auttaa sinut alkuun, JavaScript ja iOS asiakaskirjastoja ovat kehitteillä https://github.com/JeremyOT/TotoClient-JS ja https://github.com/JeremyOT/TotoClient-iOS vastaavasti.

Ominaisuudet :

  • Käyttää JSON helposti kulutusta asiakkaiden millä tahansa alustalla
  • Helppo lisätä uusia menetelmiä
  • Yksinkertainen todennus rakennettu sisään hmac-SHA1 todentaminen oikeaksi pyynnöt
  • Session valtio pysyvyys oikeaksi pyynnöt
  • Istunnot tallennetaan tietokantaan yksinkertaistaa skaalaus eri palvelimia

Vaatimukset :

  • Python

Kommentit Toto

Kommentteja ei löytynyt
Lisää kommentti
Ota kuvia!