Comenzar

En este documento, se detallan los conocimientos previos que necesitas para usar la API de Google Libros.

Introducción

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

Antes de comenzar

Obtener una cuenta de Google

Necesitas una Cuenta de Google para realizar pruebas. Si ya tienes una cuenta de prueba, no necesitas hacer nada más. Puedes visitar la interfaz de usuario de Google Libros para configurar, editar o ver tus datos de prueba.

Familiarízate con Libros

Si no estás familiarizado con los conceptos de Google Libros, 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 e 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 de "Mi música" en la API de Google Libros se consideran privadas y requieren autenticación y autorización. Además, cualquier operación que modifique los datos de Google Libros puede realizarla únicamente el propietario de los datos.

Cuando 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 Cómo autorizar solicitudes e identificar tu aplicación en el documento Uso de la API.

Fondo de Books API

Conceptos de libros

Google Libros se basa en cuatro conceptos básicos:

  • Volumen: Corresponde a los datos que Google Libros aloja 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 Libros proporciona un conjunto de estanterías predefinidas para cada usuario, algunas de las cuales están completamente administradas por el usuario, algunas de las cuales se completan automáticamente en función de su actividad y otras se mezclan. Los usuarios pueden crear, modificar o borrar otras estanterías, que siempre están llenas de volúmenes de forma manual. Las estanterías pueden ser privadas o públicas para el usuario.

    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 de un volumen es una combinación de una calificación por estrellas o un texto. Un usuario puede enviar una opinión por volumen. Las opiniones también están disponibles desde fuentes externas y se atribuyen de manera adecuada.
  • Posición de lectura: una posición de lectura indica la última posición de lectura de 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, la posición de lectura no existe. La posición de lectura puede almacenar información detallada sobre 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 Libros

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 antes:

  • Recurso de volumen: representa un volumen.
  • Recurso de Bookshelf: Representa una estantería única para un usuario en particular.

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

Recopilación de volúmenes
La colección de volúmenes es una colección de cada recurso de volúmenes administrado por Google Libros. Por lo tanto, no puedes enumerar todos los recursos de volumen, pero puedes enumerar todos los volúmenes que coincidan con un conjunto de términos de búsqueda.
Colección de estanterías
Una colección de estanterías consiste en todos los recursos de estantería que administra Google Libros. 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.
  • Comprado: Se propaga con los volúmenes que el usuario compró. El usuario no puede agregar ni quitar volúmenes de forma manual.
  • Para leer: Estantería mutable.
  • Leer ahora: Biblioteca mutable.
  • Lee: Biblioteca mutable.
  • Revisado: Se propaga con los volúmenes que el usuario revisó. El usuario no puede agregar ni quitar volúmenes de forma manual.
  • Vistos recientemente: Se propagan con los volúmenes que el usuario abrió recientemente en un lector web. El usuario no puede agregar volúmenes de forma manual.
  • Mis eBooks: Estantería mutable. Los libros comprados se agregan automáticamente, pero se pueden quitar de forma manual.
  • Libros para ti: recomendaciones personalizadas con volúmenes Si no tenemos recomendaciones para el usuario, esta estantería no existe.

Bibliotecas de ejemplo:

  • "Favoritos"
    • "Harry Potter"
  • "Mis eBooks"
    • "Cambiar"
    • "Crepúsculo"
    • "La chica del dragón tatuado"

Operaciones de la API de Libros

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

Operación Descripción Asignaciones HTTP de REST
list Muestra una lista de un subconjunto de recursos específico dentro de una colección. GET en un URI de 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 se pasan los datos para un recurso nuevo
obtener Obtiene un recurso específico. GET en el URI del recurso.
actualizar Actualiza un recurso específico. PUT en el URI del recurso, en el que pasas datos para el recurso actualizado
borrar Borra un recurso específico. DELETE en el URI del recurso, en el que pasas datos para que se borren.

Las operaciones admitidas 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 “Mi biblioteca”, y todas requieren la autenticación.

Tipo de recurso
Operaciones admitidas
lista insertar obtener actualización borrar
Volúmenes sí*
Bibliotecas sí* sí, AUTHENTICATED sí* sí, AUTHENTICATED sí, AUTHENTICATED
Posiciones de lectura sí, AUTHENTICATED sí, AUTHENTICATED sí, AUTHENTICATED sí, AUTHENTICATED

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

Estilos de llamada

Existen varias formas de invocar a la API:

  • Usa REST directamente
  • Usar 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 el acrónimo en inglés de "Transferencia de estado representacional". En el contexto de las API de Google, se refiere al uso de verbos HTTP para recuperar y modificar representaciones de los datos que almacena 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 de RESTful de Google, el cliente especifica una acción con un verbo HTTP como POST, GET, PUT o DELETE. Especifica un recurso mediante un URI único a nivel global de la siguiente forma:

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 Libros

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

El formato específico de los URI de la API de Libros es el siguiente:

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

en el que resourceID es el identificador de un recurso de volumen o estantería, y parameters son cualquier parámetro para aplicar a la consulta. Consulta la Referencia de parámetros de consulta para obtener más información.

El formato de las extensiones de ruta de acceso resourceID te permite identificar el recurso en el que operas 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 se aplican solo 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 Referencia de la API de Libros.

A continuación, se muestran algunos ejemplos de cómo funciona esto en la API de Libros.

Haga una búsqueda de acolchado:

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

Obtén información sobre el volumen de s1gVAAAAYAAJ:

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

REST de JavaScript

Puedes invocar la API de Libros mediante 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 completas que muestran datos de libros sin escribir ningún código en el servidor.

Nota: Puedes llamar a los 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 descritas en OAuth 2.0 para aplicaciones web del lado del cliente. En la pestaña "Acceso a la API" de la Consola de API, asegúrate de configurar un ID de cliente para las aplicaciones web y de usar esas credenciales de OAuth 2.0 cuando obtengas el 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.