# HTTP REST request (GET) da un server rails

**URL:** <https://www.ruby-forum.com/t/http-rest-request-get-da-un-server-rails/222627>\
**Category:** IT\
**Created:** [September 4, 2012, 11:18am UTC](https://www.ruby-forum.com/t/http-rest-request-get-da-un-server-rails/222627 "2012-09-04T11:18:19Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![aris](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/258eb7/32.png) [@aris](https://www.ruby-forum.com/u/aris)\
**Post date:** [September 4, 2012, 11:18am UTC](https://www.ruby-forum.com/t/http-rest-request-get-da-un-server-rails/222627/1 "2012-09-04T11:18:19Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![apprendistastregone](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/7ea924/32.png) [@apprendistastregone](https://www.ruby-forum.com/u/apprendistastregone)\
**Post date:** [September 4, 2012, 11:34am UTC](https://www.ruby-forum.com/t/http-rest-request-get-da-un-server-rails/222627/2 "2012-09-04T11:34:06Z")

</div>

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?

---

<div class="post-metadata">

**Author:** ![apprendistastregone](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/7ea924/32.png) [@apprendistastregone](https://www.ruby-forum.com/u/apprendistastregone)\
**Post date:** [September 4, 2012, 11:39am UTC](https://www.ruby-forum.com/t/http-rest-request-get-da-un-server-rails/222627/3 "2012-09-04T11:39:22Z")

</div>

Io uso HTTParty per tutto.

> **[GitHub - jnunemaker/httparty: :tada: Makes http fun again!](https://github.com/jnunemaker/httparty)**
>
> :tada: Makes http fun again! Contribute to jnunemaker/httparty development by creating an account on GitHub.

Il giorno 04/set/2012, alle ore 11:33, Matteo L.  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) ha scritto:

---

<div class="post-metadata">

**Author:** ![apprendistastregone](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/7ea924/32.png) [@apprendistastregone](https://www.ruby-forum.com/u/apprendistastregone)\
**Post date:** [September 4, 2012, 12:13pm UTC](https://www.ruby-forum.com/t/http-rest-request-get-da-un-server-rails/222627/4 "2012-09-04T12:13:50Z")

</div>

A me piace molto RestClient.

Curiosit: cosa intendi per richiesta asincrona in questo caso?

---

<div class="post-metadata">

**Author:** ![apprendistastregone](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/7ea924/32.png) [@apprendistastregone](https://www.ruby-forum.com/u/apprendistastregone)\
**Post date:** [September 4, 2012, 12:32pm UTC](https://www.ruby-forum.com/t/http-rest-request-get-da-un-server-rails/222627/5 "2012-09-04T12:32:34Z")

</div>

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/](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!

---

<div class="post-metadata">

**Author:** ![apprendistastregone](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/7ea924/32.png) [@apprendistastregone](https://www.ruby-forum.com/u/apprendistastregone)\
**Post date:** [September 4, 2012, 1:18pm UTC](https://www.ruby-forum.com/t/http-rest-request-get-da-un-server-rails/222627/6 "2012-09-04T13:18:43Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![apprendistastregone](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/7ea924/32.png) [@apprendistastregone](https://www.ruby-forum.com/u/apprendistastregone)\
**Post date:** [September 7, 2012, 9:18am UTC](https://www.ruby-forum.com/t/http-rest-request-get-da-un-server-rails/222627/7 "2012-09-07T09:18:27Z")

</div>

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 [GitHub - nahi/httpclient: 'httpclient' gives something like the functionality of libwww-perl (LWP) in Ruby.](https://github.com/nahi/httpclient) senza dubbio più comodo  
che usare direttamente la libreria integrata in ruby  
Ciao
