Google Books
Google Books is a Ruby wrapper to the Google Books API The project was inspired by google-book. It is a nice wrapper, however the Google Book Search Data API "is deprecated as of May 26, 2011 and will be fully retired on December 1, 2011."
Usage
The usage is similar to that of google-book, but the semantics are a little different
require 'google_books' # Or hey, add it to your Gemfile
books = GoogleBooks::API.search('Douglas Crockford')
book = books.first
puts book.title
#=> "JavaScript: The Good Parts"
puts book.isbn
#=> "9780596517748"
puts book.covers[:thumbnail]
#=> "http://bks8.books.google.com/books?id=..."
In addition to the query, the GoogleBooks::API.search
method takes in a hash of 3 different options:
-
count
: The number of results that you want returned, currently the default is 10 (set by Google) -
page
: The page of results that you want. Combine this withtotal_results
method of theGoogleBooks::API::Response
, and implement paging in your application -
api_key
: For production apps, Google requires either OAuth 2.0 or an API key to request public data. See the API Documentation for more information.
Queries
Within your query that you pass to the search method, you can use special keywords as outlined in the API Documentation
-
intitle
: Returns results where the text following this keyword is found in the title. -
inauthor
: Returns results where the text following this keyword is found in the author. -
inpublisher
: Returns results where the text following this keyword is found in the publisher. -
subject
: Returns results where the text following this keyword is listed in the category list of the volume. -
isbn
: Returns results where the text following this keyword is the ISBN number.
For example:
# Get the book with the isbn of 9781118035580
books = GoogleBooks::API.search('isbn:9781118035580')
book = books.first
puts book.title
#=> "Hands - on ASP.NET AJAX Control Toolkit"
puts book.authors.first
#=> "Damien White" (Shameless plug)
puts book.covers[:thumbnail]
#=> "http://bks7.books.google.com/books?id=..."
Book Attributes
-
title
: StringThis will append a subtitle if one exists, like "JavaScript: The Good Parts"
-
authors
: Array -
publisher
: String -
published_date
: StringThe
published_date
is represented by the format YYYY-MM-DD with MM and DD being optional -
isbn
: String -
isbn_10
: String -
page_count
: FixNum -
categories
: Array -
description
: String -
average_rating
: Float -
ratings_count
: FixNum -
covers
: HashThe keys are
:thumbnail
,:small
,:medium
,:large
,:extra_large
Not all of the image URLs are guaranteed to return something. Stick with thumbnail or small for the best results
-
preview_link
: String -
info_link
: String