7

Sto cercando di iniziare a utilizzare l'API dati di Google per Google Ricerca Libri nell'applicazione Ruby on Rails 3 e non capisco nemmeno come iniziare. Quali gemme ho bisogno? Cosa devo fare per fare qualcosa di semplice come cercare libri con un titolo di Foobar?Ruby on Rails 3 e Google Book Search

risposta

12

In seguito sulla questione deprecazione: Ho appena pubblicato GoogleBooks, un involucro di Ruby che permette agli utenti di eseguire query per i libri precisamente nel modo descritto.

È stato aggiornato per connettersi all'API di Google di oggi, quindi non è interessato dalla recente deprecazione dell'API di Google Ricerca Libri.

+0

bel lavoro! Userò sicuramente questo in futuro. – Andrew

+0

questa è una gemma formidabile. grazie mille. – hankang

+0

Funziona come un fascino \ o / –

0

se si desidera utilizzare l'api, penso che sarà necessario utilizzare jruby e la loro java api. no ruby ​​api esiste per la ricerca di libri, in base a questo: http://code.google.com/apis/books/docs/gdata/code.html

per connettersi con google, provare a utilizzare la gem di gdata. http://code.google.com/apis/gdata/articles/gdata_on_rails.html#SetupRails

+0

Spiacente, non posso usare Java. Ho bisogno di una soluzione Ruby. – Andrew

+0

Inoltre, penso che potrei usare la gemma gdata, ma non riesco a capire come farlo funzionare. Inoltre, una soluzione più generica andrebbe bene. Ho solo bisogno di un esempio di codice per iniziare. – Andrew

+0

secondo la soluzione di Kevin l'esigenza esclusiva di jruby non è presente. Eviterò un downvote dato il tuo rappresentante. –

6

Se stai cercando di utilizzare Google Libri per recuperare le informazioni sui libri, è possibile utilizzare la loro API dati: http://code.google.com/apis/books/docs/gdata/developers_guide_protocol.html

Fare richieste a un URL del tipo http://books.google.com/books/feeds/volumes?q=isbn:9780974514055 tornerà XML con le informazioni del libro. Potresti usare la gemma Nokogiri per analizzare il risultato (http://nokogiri.org/).

Una cosa di cui essere a conoscenza è che, per ottenere le descrizioni complete per i libri, è necessario ottenere la voce anziché solo i risultati del feed.

Ecco un breve esempio di come si potrebbe ottenere le informazioni di un libro da 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