class_docstr: A class for handling connections and interactions with the Google Books API.
class_docstr_tok: ["A","class","for","handling","connections","and","interactions","with","the","Google","Books","API","."]
docstr: Get volumes from Google Books API
  Args:
      params (dict): query parameters
  Returns:
      DataFrame
docstr_tok: ["Get","volumes","from","Google","Books","API","Args",":","params","(","dict",")",":","query","parameters","Returns",":","DataFrame"]
code: def get_volumes(self, params: dict = None) -> DataFrame:
      """
      Get volumes from Google Books API
      Args:
          params (dict): query parameters
      Returns:
          DataFrame
      """
      service = self.connect()
      args = {
          key: value
          for key, value in params.items()
          if value is not None
      }
      volumes = service.volumes().list(**args).execute()
      df = pd.DataFrame(
          volumes["items"], columns=self.volumes.get_columns()
      )
      return df
  
imports: import os
  from google.auth.transport.requests import Request
  from google.oauth2 import service_account
  from google.oauth2.credentials import Credentials
  from googleapiclient.discovery import build
  import pandas
  from pandas import DataFrame
  from mindsdb.api.executor.data_types.response_type import RESPONSE_TYPE
  from .google_books_tables import BookshelvesTable, VolumesTable
  from mindsdb.integrations.libs.api_handler import APIHandler, FuncParser
  from mindsdb.integrations.libs.response import HandlerStatusResponse, HandlerResponse
  from mindsdb.utilities import log
label_desc: Use image node_id 6 for calling the GoogleBooksHandler obj's underlying member method code with example usage: obj.get_volumes(params) and returns: df