Cómo comenzar

En este documento, se detalla el conocimiento previo que necesitas para usar la API de Google Books.

Introducción

Este documento está dirigido a desarrolladores que deseen escribir aplicaciones que puedan interactuar con la API de Google Books. Google Libros tiene la visión de digitalizar los libros del mundo. Puedes usar la API de Google Books para buscar contenido, organizar la biblioteca personal de un usuario autenticado y modificarla.

Antes de comenzar

Obtén una Cuenta de Google

Necesitas una Cuenta de Google para realizar pruebas. Si ya tienes una cuenta de prueba, puedes visitar la interfaz de usuario de Google Books para configurar, editar o ver tus datos de prueba.

Familiarízate con Libros

Si no conoces los conceptos de Google Books, debes leer este documento y experimentar con la interfaz de usuario antes de comenzar a programar. En este documento, se supone que estás familiarizado con los conceptos de programación web y los formatos de datos web.

Más información sobre cómo autorizar solicitudes y cómo identificar tu aplicación

Cuando tu aplicación solicita datos privados, la solicitud debe estar autorizada por un usuario autenticado que tenga acceso a esa información.

En particular, todas las operaciones en "Mi biblioteca" de la API de Google Books se consideran privadas y requieren autenticación y autorización. Además, cualquier operación que modifique los datos de Google Books solo la puede realizar el usuario propietario de esos datos.

Si tu aplicación solicita datos públicos, no es necesario autorizar la solicitud, pero sí debe ir acompañada de un identificador, como una clave de API.

Para obtener información sobre cómo autorizar solicitudes y usar claves de API, consulta Autoriza solicitudes y, luego, identifica tu aplicación en el documento Uso de la API.

Antecedentes de la API de Libros

Conceptos de Libros

Google Libros se basa en cuatro conceptos básicos:

  • Volumen: Un volumen representa los datos que aloja Google Libros sobre un libro o una revista. Es el recurso principal de la API de Books. Todos los demás recursos de esta API contienen o anotan un volumen.
  • Bookshelf: Una estantería es una colección de volúmenes. Google Books proporciona un conjunto de estanterías predefinidas para cada usuario, algunas de las cuales son administradas por el usuario, otras se completan automáticamente según la actividad del usuario y otras son mixtas. Los usuarios pueden crear, modificar o borrar otras estanterías, que siempre se llenan con volúmenes de forma manual. El usuario puede establecer las estanterías como privadas o públicas.

    Nota: Por el momento, solo se pueden crear y borrar estanterías, así como modificar la configuración de privacidad de las estanterías, a través del sitio de Google Libros.

  • Opinión: Una opinión sobre un volumen es una combinación de una calificación por estrellas o texto. Un usuario puede enviar una opinión por volumen. Las opiniones también están disponibles en fuentes externas y se atribuyen de forma adecuada.
  • Posición de lectura: Indica la última posición de lectura en un volumen para un usuario. Un usuario solo puede tener una posición de lectura por volumen. Si el usuario no abrió ese volumen antes, no existe la posición de lectura. La posición de lectura puede almacenar información detallada de la posición hasta la resolución de una palabra. Esta información siempre es privada para el usuario.

Modelo de datos de la API de Books

Un recurso es una entidad de datos individual con un identificador único. La API de Books opera en dos tipos de recursos, según los conceptos descritos anteriormente:

  • Recurso de volumen: Representa un volumen.
  • Recurso Bookshelf: Representa una sola biblioteca para un usuario en particular.

El modelo de datos de la API de Books se basa en grupos de recursos, llamados colecciones:

Recopilación de volumen
La colección de volúmenes es una colección de todos los recursos de volumen que administra Google Books. Por lo tanto, no puedes listar todos los recursos de volumen, pero sí puedes listar todos los volúmenes que coincidan con un conjunto de términos de búsqueda.
Colección de Bookshelf
Una colección de estantería consta de todos los recursos de estantería que administra Google Books. Siempre se debe hacer referencia a las estanterías en el contexto de la biblioteca de un usuario específico. Las estanterías pueden contener cero o más volúmenes.

Google proporciona un conjunto de estanterías predefinidas para cada usuario:

  • Favoritos: Estantería mutable.
  • Comprados: Se completa con los volúmenes que compró el usuario. El usuario no puede agregar ni quitar volúmenes de forma manual.
  • Para leer: Estantería mutable.
  • Leyendo ahora: Estantería mutable.
  • Leídos: Estantería mutable.
  • Revisados: Se completa con los volúmenes que revisó el usuario. El usuario no puede agregar ni quitar volúmenes de forma manual.
  • Vistos recientemente: Se completa con los volúmenes que el usuario abrió recientemente en un lector web. El usuario no puede agregar volúmenes de forma manual.
  • Mis libros electrónicos: Biblioteca mutable. Los libros comprados se agregan automáticamente, pero se pueden quitar de forma manual.
  • Libros para ti: Se completa con recomendaciones de volúmenes personalizadas. Si no tenemos recomendaciones para el usuario, esta biblioteca no existe.

Ejemplos de estanterías:

  • "Favoritos"
    • "Harry Potter"
  • "Mis libros electrónicos"
    • “Cambiar”
    • "Crepúsculo"
    • "La chica con el tatuaje de dragón"

Operaciones de la API de Books

Puedes invocar cinco métodos diferentes en las colecciones y los recursos de la API de Books, como se describe en la siguiente tabla.

Operación Descripción Asignaciones de HTTP de REST
list Enumera un subconjunto especificado de recursos dentro de una colección. GET en el URI de una colección
insertar Inserta un recurso nuevo en una colección (crea un recurso nuevo). POST en un URI de colección, en el que pasas datos para un recurso nuevo.
get Obtiene un recurso específico. GET en el URI de recurso.
actualizar Actualiza un recurso específico. PUT en el URI del recurso, donde pasas datos para el recurso actualizado.
borrar Borra un recurso específico. DELETE en el URI del recurso, donde pasas datos para el recurso que se borrará.

Las operaciones que se admiten para los distintos tipos de recursos se resumen en la siguiente tabla. Las operaciones que se aplican a los datos privados de un usuario se denominan operaciones de "Mi biblioteca" y todas requieren autenticación.

Tipo de recurso
Operaciones admitidas
list insert get update delete
Volúmenes Sí*
Estanterías Sí* Sí, AUTHENTICATED Sí* Sí, AUTHENTICATED Sí, AUTHENTICATED
Posiciones de lectura Sí, AUTHENTICATED Sí, AUTHENTICATED Sí, AUTHENTICATED Sí, AUTHENTICATED

*Están disponibles las versiones AUTENTICADAS y no autenticadas de estas operaciones, en las que las solicitudes autenticadas operan en los datos privados de "Mi biblioteca" del usuario, y las solicitudes no autenticadas operan solo en datos públicos.

Estilos de llamadas

Existen varias formas de invocar la API:

  • Uso directo de REST
  • Uso de REST desde JavaScript (no se requiere código del servidor)

REST

REST es un estilo de arquitectura de software que proporciona un enfoque conveniente y coherente para solicitar y modificar datos.

El término REST es la abreviatura de "Representational State Transfer" (transferencia de estado representacional). En el contexto de las API de Google, se refiere al uso de los verbos HTTP para recuperar y modificar las representaciones de los datos almacenados por Google.

En un sistema RESTful, los recursos se almacenan en un almacén de datos; un cliente envía una solicitud para que el servidor ejecute una acción en particular (como crear, recuperar, actualizar o borrar un recurso) y el servidor ejecuta la acción y envía una respuesta que, por lo general, es una representación del recurso especificado.

En las API con tecnología REST de Google, el cliente especifica una acción con un verbo HTTP como POST, GET, PUTDELETE. Especifica un recurso mediante un URI único a nivel global de la siguiente manera:

https://www.googleapis.com/apiName/apiVersion/resourcePath?parameters

Dado que todos los recursos de API tienen URI únicos accesibles a través de HTTP, REST permite el almacenamiento de datos en caché y está optimizado para funcionar con la infraestructura distribuida de la Web.

Puedes encontrar las definiciones de métodos en la documentación de estándares del HTTP 1.1, los que incluyen especificaciones para GET, POST, PUT y DELETE.

REST en la API de Books

Las operaciones de Books admitidas se asignan directamente a los verbos HTTP de REST, como se describe en Operaciones de la API de Books.

El formato específico para los URIs de la API de Books es el siguiente:

https://www.googleapis.com/books/v1/{collectionName}/resourceID?parameters

En este ejemplo, resourceID es el identificador de un recurso de volumen o estantería, y parameters son los parámetros que se aplican a la búsqueda. Para obtener más información, consulta la referencia de los parámetros de consulta.

El formato de las extensiones de ruta de acceso resourceID te permite identificar el recurso con el que trabajas actualmente, por ejemplo:

https://www.googleapis.com/books/v1/volumes
https://www.googleapis.com/books/v1/volumes/volumeId
https://www.googleapis.com/books/v1/mylibrary/bookshelves
https://www.googleapis.com/books/v1/mylibrary/bookshelves/shelf
https://www.googleapis.com/books/v1/mylibrary/bookshelves/shelf/volumes
...

Ten en cuenta que las operaciones con mylibrary en el URI solo se aplican a los datos de la biblioteca privada del usuario autenticado actualmente. El conjunto completo de los URI que se usan en cada operación compatible con la API se resume en el documento de referencia de la API de Books.

Estos son algunos ejemplos de cómo funciona esto en la API de Books.

Realiza una búsqueda de acolchado:

GET https://www.googleapis.com/books/v1/volumes?q=quilting

Obtén información sobre el volumen s1gVAAAAYAAJ:

GET https://www.googleapis.com/books/v1/volumes/s1gVAAAAYAAJ

REST desde JavaScript

Puedes invocar la API de Books con REST desde JavaScript (también llamado JSON-P), con el parámetro de consulta callback y una función de devolución de llamada. Esto te permite escribir aplicaciones enriquecidas que muestran datos de libros sin escribir ningún código del servidor.

Nota: Puedes llamar a métodos autenticados pasando un token de OAuth 2.0 con el parámetro access_token. Para obtener un token de OAuth 2.0 para usar con JavaScript, sigue las instrucciones que se describen en OAuth 2.0 para aplicaciones web del cliente. En la pestaña "Acceso a la API" de la Consola de APIs, asegúrate de configurar un ID de cliente para las aplicaciones web y de usar esas credenciales de OAuth 2.0 cuando obtengas tu token.

En el siguiente ejemplo, se usa este enfoque para mostrar los resultados de la búsqueda de "harry potter":

<html>
  <head>
    <title>Books API Example</title>
  </head>
  <body>
    <div id="content"></div>
    <script>
      function handleResponse(response) {
      for (var i = 0; i < response.items.length; i++) {
        var item = response.items[i];
        // in production code, item.text should have the HTML entities escaped.
        document.getElementById("content").innerHTML += "<br>" + item.volumeInfo.title;
      }
    }
    </script>
    <script src="https://www.googleapis.com/books/v1/volumes?q=harry+potter&callback=handleResponse"></script>
  </body>
</html>

Formato de los datos

JSON

JSON (JavaScript Object Notation) es un formato de datos común y, también, independiente del lenguaje que proporciona una representación de texto simple de estructuras de datos arbitrarias. Para obtener más información, visita json.org.