7

Estoy tratando de empezar a utilizar la API de datos de Google para la Búsqueda de libros de Google en mi aplicación Ruby on Rails 3, y ni siquiera entiendo cómo comenzar. ¿Qué gemas necesito? ¿Qué debo hacer para hacer algo tan simple como buscar libros con un título de Foobar?Ruby on Rails 3 y Búsqueda de libros de Google

Respuesta

12

Siguiendo con el tema de desaprobación: Acabo de publicar GoogleBooks, un envoltorio de Ruby que permite a los usuarios para consultar libros precisamente de la manera descrita.

Se ha actualizado para engancharse a la API de Google de hoy en día, por lo que no se ve afectado por la reciente desactivación de la API de la Búsqueda de libros de Google.

+0

¡buen trabajo! Definitivamente voy a usar esto en el futuro. – Andrew

+0

esta es una excelente joya. Muchas gracias. – hankang

+0

Funciona como un encanto \ o / –

0

si quieres usar la API, creo que deberás usar jruby y su api java. no existe una aplicación de ruby ​​para la búsqueda de libros, de acuerdo con esto: http://code.google.com/apis/books/docs/gdata/code.html

para conectarse con google, intente utilizar la gema gdata. http://code.google.com/apis/gdata/articles/gdata_on_rails.html#SetupRails

+0

Lo siento, no puedo usar Java. Necesito una solución de Ruby. – Andrew

+0

Además, creo que podría usar la gema gdata, pero no puedo encontrar la manera de hacerlo funcionar. Además, una solución más genérica estaría bien también. Solo necesito una muestra de código para comenzar. – Andrew

+0

según la solución de Kevin, la necesidad exclusiva de jruby no está allí. Evitaré un voto negativo dado tu representante. –

6

Si usted está mirando para utilizar Google Books para recuperar información sobre los libros, puede utilizar su API de datos: http://code.google.com/apis/books/docs/gdata/developers_guide_protocol.html

Hacer peticiones a un URL como http://books.google.com/books/feeds/volumes?q=isbn:9780974514055 volverá XML con la información del libro. Puede usar la gema Nokogiri para analizar el resultado (http://nokogiri.org/).

Una cosa a tener en cuenta es que, para obtener la descripción completa de los libros, debe obtener la entrada en lugar de solo los resultados de la fuente.

He aquí un breve ejemplo de cómo se puede obtener información de un libro de Google:

require 'open-uri' 
require 'nokogiri' 

class Book 
    attr_accessor :title, :description 
    def self.from_google(title) 
    book = self.new 
    entry = Nokogiri::XML(open "http://books.google.com/books/feeds/volumes?q=#{title}").css("entry id").first 
    xml = Nokogiri::XML(open entry.text) if entry 
    return book unless xml 

    book.title  = xml.css("entry dc|title").first.text  unless xml.css("entry dc|title").empty? 
    book.description = xml.css("entry dc|description").first.text unless xml.css("entry dc|description").empty? 
    book 
    end 
end 

b = Book.from_google("Ruby") 
p b