def get(id)
      # Have to use different API endpoint, can't do a fielded search.
      url = base_url + "volumes/#{CGI.escape id}"

      if configuration.api_key
        url += "?key=#{configuration.api_key}"
      end

      response = http_client.get( url )

      if response.status == 404
        raise BentoSearch::NotFound.new("ID: #{id}")
      end

      # GBS has switched to returning a 503 for bad id's???
      # Prob a bug on Google's end, but we have to deal with it.
      if response.status == 503
        raise BentoSearch::NotFound.new("ID: #{id} (503 error from Google, tests show indicates not found ID however)")
      end

      json = MultiJson.load( response.body )

      if json["error"]
        raise Exception.new("Error in get(#{id}): #{json['error'].inspect}")
      end

      return hash_to_item(json)
    end
def get(id)
      # Have to use different API endpoint, can't do a fielded search.
      url = base_url + "volumes/#{CGI.escape id}"

      if configuration.api_key
        url += "?key=#{configuration.api_key}"
      end

      response = http_client.get( url )

      if response.status == 404
        raise BentoSearch::NotFound.new("ID: #{id}")
      end

      # GBS has switched to returning a 503 for bad id's???
      # Prob a bug on Google's end, but we have to deal with it.
      if response.status == 503
        raise BentoSearch::NotFound.new("ID: #{id} (503 error from Google, tests show indicates not found ID however)")
      end

      json = MultiJson.load( response.body )

      if json["error"]
        raise Exception.new("Error in get(#{id}): #{json['error'].inspect}")
      end

      return hash_to_item(json)
    end
Look up a single item by #unique_id. Returns a single item, or
 raises BentoSearch::NotFound, BentoSearch::TooManyFound, or other.