with tutorial rails practices crear best ruby-on-rails ruby service web httparty

ruby on rails - tutorial - Utilizar raíles para consumir servicios web/apis



rails api tutorial (1)

Soy nuevo en el mundo de los rieles y estoy tratando de crear una aplicación que simplemente me permita buscar cosas en Amazon y dichos sitios en función de la entrada de los usuarios.

He hecho una pequeña investigación y parece que la gema httparty es un buen lugar para comenzar. Los documentos que he encontrado hasta ahora no son los mejores. En realidad, no me dan mucha información (dónde poner el código, etc.).

¿Hay algún tutorial existente o ejemplos de código que pueda usar o echar un vistazo para darme una mejor idea de cómo funciona esto?


Estoy trabajando en una aplicación como esta en este momento, así que permítanme ofrecer algunas ideas.

Primero, si eres un recién llegado completo a Rails, entonces, como primer paso, te sugiero que tomes un enfoque paralelo al problema, con dos pistas:

  1. Aprende sobre Rails
  2. Aprende cómo interactuar con una API (realizar solicitudes y analizar respuestas) en Ruby

Estos son dos problemas separados, y aunque puede terminar implementándolos juntos, lo mejor es pensarlos primero en aislamiento.

Para la primera, sugeriría escribir un par de aplicaciones simples primero para tener una idea de cómo funcionan las cosas. Incluso solo una aplicación simple requerirá una cierta cantidad de interacción del usuario, posiblemente guardando registros en la base de datos, etc., problemas que son independientes del consumo de datos de una API. Hay un sinfín de tutoriales disponibles en Rails, pero para mencionar uno, puede probar el Desarrollo web de Learn de Michael Harti con Rails como punto de partida.

El segundo punto, consumir datos de API, es distinto de los problemas de diseño de la aplicación en sí. Para obtener más información sobre este aspecto del problema, sugeriría utilizar una popular gema cliente API como (como usted mencionó) HTTParty , que uso yo mismo. En lugar de intentar usar los métodos de HTTParty en una aplicación de Rails, como ejercicio, sugiero jugar un poco en una consola (irb). Si instala la gema ( gem install httparty ), puede requerirla ( require ''httparty'' ) de la consola e inmediatamente hacer solicitudes y analizar las respuestas de las API.

P.ej:

irb(main):001:0> require ''httparty'' => true irb(main):002:0> response = HTTParty.get(''http://twitter.com/statuses/public_timeline.json'') => ...

Una vez que te hayas familiarizado un poco con Rails y hayas accedido a una API en Ruby, podrás pasar a la construcción de la aplicación. Dependiendo de qué tan complejas sean sus solicitudes a la (s) API (s), tiene algunas opciones sobre cómo estructurar sus solicitudes API en su aplicación Rails:

  1. Haga que las solicitudes formen parte de la aplicación Rails, directamente desde las acciones del controlador. Esto solo está bien si solo va a admitir un número muy limitado de tipos de solicitudes (por ejemplo, búsqueda simple) en una cantidad limitada de servicios. Algo más complejo y su controlador engordará, lo cual es un no-no en los frameworks MVC.
  2. Cree una clase de ruby ​​por separado (generalmente llamada contenedor de API) para agrupar métodos para realizar solicitudes y analizar respuestas de la API. Con una gema como HTTParty puedes hacer esto simplemente agregando una línea que include HTTParty en la clase, que agrega el módulo a la clase. Hay muchos ejemplos sobre cómo hacer esto, aquí hay uno .
  3. Use una joya dedicada para acceder a API específicas, o cree una (o más) usted mismo. Hay gemas para los servicios más populares, por ejemplo, Twitter , Linkedin , Flickr , etc. Consulte esta lista de gemas de clientes API para obtener más información. Esto elimina la molestia de interactuar con una API, pero solo funcionará para un subconjunto de todos los servicios.

Menciona que está pensando en usar HTTParty, que puedo recomendar porque lo estoy usando yo mismo. Hay alternativas como Faraday (consulte esta lista de clientes HTTP para obtener más información), pero creo que para la mayoría de las tareas, HTTParty funcionará bien. La documentación puede ser un poco escasa, pero hay muchos ejemplos de los que puedes trabajar.

¡Espero que ayude!