ruby-on-rails - practices - rails api scotch
¿Interfaz con una API de terceros en Rails?(Abre las URL y analiza XML/JSON) (2)
En un mundo perfecto, ya existe una gema para la API que desea utilizar, y simplemente usaría eso. De lo contrario, tienes algunas opciones:
- ActiveResource puede tener sentido para usted dependiendo de la complejidad de la API que desee utilizar. Por ejemplo, aquí hay un ejemplo antiguo (y ya no funcional) de usar ActiveResource para conectarse a la API de Twitter
- Net::Http es de nivel inferior, pero ciertamente hace el truco
- open-uri es una envoltura para net / http
- Curb usa libcurl para hacer las cosas
Parsing JSON es generalmente muy sencillo. Para XML, como se indica en otra respuesta, Nokogiri es probablemente el camino a seguir.
Estoy trabajando en un proyecto de Rails que tendrá que interactuar con varias API de terceros. Soy bastante nuevo en Rails, y nunca he hecho esto antes, por lo que me falta información básica aquí. Específicamente, ¿cuál es la forma preferida de Rails de simplemente consultar una URL externa?
En el mundo de PHP, era cURL. Tome la URL del recurso, lance cURL y comience a procesar la respuesta, ya sea XML, JSON, etc.
Entonces, ¿cuál es el cURL equivalente en Rails? Mientras estamos en eso, ¿cuál es el método preferido para analizar las respuestas JSON y XML? Mis instintos son buscar en Google algunas gemas de Ruby para hacer el trabajo, pero este es un problema tan práctico que no me sorprendería si la comunidad de Rails ya hubiera elaborado una solución probada y verdadera para este tipo de problema. .
Si tiene algún valor contextual, planeo ejecutar estas interacciones de API de terceros como cronjobs nocturnos, probablemente todos empaquetados como tareas de rake personalizadas.
Gracias por compartir tu experiencia.
para abrir urls puedes usar open-uri
sólo
require ''open-uri''
file_handle = open("http://google.com/blah.xml")
para analizar xml puedes usar Nokogiri
$ gem install nokogiri
document = Nokogiri::XML(file_handle)
document/"xpath/search"
Una biblioteca muy poderosa, puede hacer todo tipo de búsquedas y modificaciones tanto para XML como para HTML.
Lo mismo para html Nokogiri::HTML
También hay un montón de soporte JSOM por ahí también
Checkout Nokogiri también Hpricot es bueno para XML / HTML
para JSON en rieles
parsed_json = ActiveSupport::JSON.decode(your_json_string)
parsed_json["results"].each do |longUrl, convertedUrl|
site = Site.find_by_long_url(longUrl)
site.short_url = convertedUrl["shortUrl"]
site.save
end
vea esta pregunta: ¿Cómo puedo analizar JSON con Ruby on Rails?