Forum: Italian Ruby user group HTTP REST request (GET) da un server rails

Posted by Davide Rambaldi (Guest)
on 2012-09-04 11:18
(Received via mailing list)
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
Posted by Matteo Latini (Guest)
on 2012-09-04 11:34
(Received via mailing list)
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?
Posted by Luca P. (luca_p)
on 2012-09-04 11:39
(Received via mailing list)
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:
Posted by Sante Rotondi (Guest)
on 2012-09-04 12:13
(Received via mailing list)
A me piace molto RestClient.

Curiosit: cosa intendi per richiesta asincrona in questo caso?
Posted by Davide Rambaldi (Guest)
on 2012-09-04 12:32
(Received via mailing list)
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!
Posted by Fabrizio Regini (Guest)
on 2012-09-04 13:18
(Received via mailing list)
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
Posted by Marco Mastrodonato (marcomd)
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
No account? Register here.