Me gustaría escribir una aplicación Ruby on Rails que consuma una API de servicio web RESTful que realiza cierta lógica en el resultado y luego muestra esa información en mi vista. Por ejemplo, digamos que quería escribir un programa que realizó una búsqueda en search.twitter.com. El uso de rubí puro que podría crear el siguiente método:¿Cuál es el "modo Rails" adecuado para consumir un servicio web RESTful en otro 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
estoy tentado a caer ese método en mi controlador de Rails como un método privado, pero una parte de mí piensa que hay una mejor, más "rieles" forma de hacer esto. ¿Hay un enfoque de mejores prácticas o esta es realmente la mejor manera?
Me encanta esta joya. Esto hace que los servicios web que consumen sean realmente hábiles. Una pregunta que todavía tengo es si Rails ya tiene algo incorporado para hacer esto. Parece que esto es algo bastante común para tratar de hacer que tendrían una manera de hacerlo. –
Además, perdone mi Rails noobieness :), ¿cómo podría configurar eso como modelo? Solo he usado modelos para acceder a bases de datos usando ActiveRecord. –
No hay nada incorporado en el núcleo de los rieles. Un modelo es solo una clase: simplemente cree una clase en el directorio de modelos y no herede de la clase ActiveRecord: Base. No tendrá ninguna bondad de AR incluida, pero este es un patrón bastante común para consumir servicios web dentro de una aplicación de rieles. –