Scusate la domanda banale, devo fare una HTTP request da un server rails, so che esiste net/http, ma ho visto che attualmente ci sono librerie di piu' alto livello (hhtpclient?) voi cosa consigliate? Il server deve permettere all'utente di mandare una request asincrona ad un server esterno (una google app). Scusate ancora la domanda banale. :-) Davide
on 2012-09-04 11:18
on 2012-09-04 11:34
Imho dipende quello che devi fare. Se non devi supportare basic auth e non ti serve ssl cosa c'e' di male in net/http?
on 2012-09-04 11:39
Io uso HTTParty per tutto. https://github.com/jnunemaker/httparty Il giorno 04/set/2012, alle ore 11:33, Matteo Latini <matteolatini@nebulab.it> ha scritto:
on 2012-09-04 12:13
A me piace molto RestClient. Curiosit: cosa intendi per richiesta asincrona in questo caso?
on 2012-09-04 12:32
Si, scusate la mia pessima terminologia. Spiegazione "a modo mio": 1. l'utente compila un form 2. l'utente manda una request ad un server esterno con le info del form. Server esterno: http://cloud4cancer.appspot.com/ 3. una bella rotopalla che gira. 4. on response: do la classificazione (Maligno/Benigno) 5. L'utente salva la scheda Per inciso: questo e' un progetto pilota per un "classificatore" di breast cancer che sfrutta un classificatore a rete neurale sviluppato da una ragazzina di 17 anni (invidia!) Il suo classificatore sembra classificare correttamente il 99% dei casi (che cazzo!) Non vi prometto niente, ma se riesco a convincere che il progetto e' valido potrei coinvolgere uno studente che abbia voglia di fare una tesi in Rails Ciao e grazie per le info!
on 2012-09-04 13:18
Allora, da quello che ho capito la richiesta asincrona nel browser (ovviamente), ma non detto che debba esserlo anche sul server. Non buona prassi, ma se il servizio molto veloce puoi fare una chiamata sincrona nel controller se si tratta di una demo da fare velocemente. In passato ho usato HTTParty per cose del genere. E' notevole per la semplicit di utilizzo. Altrimenti hai due possibilit: - delayed job o redis o altro e polling ajax alla risorsa per vedere quando ha finito (background job). - avventurarti in un web server evented tipo goliath o eventmachine e mantenere la connessione aperta con il servizio esterno durante la chiamata. (evented server) Generalmente uso unicorn quindi non sono esperto di webserver tipo eventmachine. Se sai come scrivere codice thread safe dai una occhiata a sidekiq che usa i thread e evita che gli workers ti si mangino tutte le risorse. -f
on 2012-09-07 09:18
Se il form deve essere inviato direttamente al servizio esterno, hai provato con un form asincrono? Dipende da come risponde il servizio altrimenti dovresti richiamarlo dal tuo server come hai descritto tu, io ho provato https://github.com/nahi/httpclient senza dubbio più comodo che usare direttamente la libreria integrata in ruby Ciao
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.