Mi piacerebbe scrivere un'applicazione Ruby on Rails che consumi un'API di servizio Web RESTful esegue una logica sul risultato e quindi visualizza tali dati sulla mia vista. Per esempio, diciamo che volevo scrivere un programma che facesse una ricerca su search.twitter.com. Utilizzando rubino puro potrei creare il seguente metodo:Qual è il corretto "Modo Rails" per consumare un servizio web RESTful su un altro dominio?
def run(search_term='', last_id=0)
@results = []
url = URI.parse("http://search.twitter.com")
res = Net::HTTP.start(url.host, url.port) do |http|
http.get("/search.json?q=#{search_term}&since_id=#{last_id.to_s}")
end
@results = JSON.parse res.body
end
Mi verrebbe da solo cadere quel metodo nel mio controller Rails come un metodo privato, ma una parte di me pensa che ci sia una migliore, più "Rails" modo per farlo. Esiste un approccio alle migliori pratiche o è davvero il modo migliore?
Amo questa gemma. Ciò rende i servizi Web che consumano davvero chiari. Una domanda che ho ancora è se Rails abbia già qualcosa di costruito per farlo? Sembra che questa sia una cosa abbastanza comune da provare a fare che avrebbero un modo per farlo. –
Inoltre, perdona la noobiosità del mio Rails :), come potrei installarlo come modello. Ho usato solo modelli per l'accesso al database usando ActiveRecord. –
Non c'è nulla di integrato nel core delle rotaie. Un modello è solo una classe: basta creare una classe nella directory dei modelli e non ereditare da ActiveRecord: classe Base. Non avrai nessuna delle qualità di AR incluse, ma questo è uno schema piuttosto comune per il consumo di servizi web all'interno di un'app per rails –