Solicitudes y respuestas

En esta guía, se presentan los principales métodos de solicitud y respuesta que componen la API de Google Docs y cómo puedes actualizar un documento en lotes.

Puedes invocar la API de Google Docs con una solicitud HTTP o mediante una invocación de método en una biblioteca cliente específica del lenguaje. Ambas opciones son equivalentes.

La API de Google Docs muestra una respuesta HTTP, que, por lo general, incluye el resultado de la invocación de la solicitud. Cuando se usa una biblioteca cliente para realizar solicitudes, las respuestas se muestran de una manera específica del lenguaje.

Métodos de la solicitud

La API de Docs admite los siguientes métodos:

  • documents.create: Crea un documento en blanco de Documentos de Google.

  • documents.get: Muestra una instancia completa del documento especificado. Puedes analizar el JSON que se muestra para extraer el contenido, el formato y otras funciones del documento.

  • documents.batchUpdate: Envía una lista de solicitudes de edición para aplicarlas de forma atómica al documento y muestra una lista de resultados.

Los métodos documents.get y documents.batchUpdate requieren un documentId como parámetro para especificar el documento de destino. El método documents.create muestra una instancia del documento creado, desde la que puedes leer el documentId. Para obtener más información sobre documentId, consulta Documento ID.

Documentos publicados

No puedes usar el método documents.get para recuperar documentos publicados. Una vez publicados, los documentos públicos usan un formato de URL diferente con un documentId público y distinto. Los intentos de usar el documentId público con el método documents.get muestran una respuesta de código de estado HTTP 404.

Del mismo modo, no puedes usar el método de la API de Drive files.copy para copiar un documento publicado.

Para recuperar o copiar un documento publicado, debes usar el documentId original. No hay métodos para extraer el documentId original de una URL publicada.

Para obtener más información, consulte:

Actualizaciones por lotes

El documents.batchUpdate método toma una lista de objetos request, cada uno de los cuales especifica una sola solicitud para realizar. Por ejemplo, puedes dar formato a un párrafo y, luego, agregar una imagen intercalada. Cada solicitud se valida antes de aplicarse, y las solicitudes se procesan según el orden en que aparecen en la solicitud por lotes.

Todas las solicitudes de la actualización por lotes se aplican de forma atómica. Es decir, si alguna solicitud no es válida, toda la actualización no se realiza correctamente y no se aplica ninguno de los cambios (potencialmente dependientes).

Algunos métodos documents.batchUpdate proporcionan respuestas con información sobre las solicitudes aplicadas. Estos métodos muestran un cuerpo de respuesta que contiene una lista de response objetos. Otras solicitudes no necesitan mostrar información y muestran una respuesta vacía. Los objetos de la lista de respuestas ocupan el mismo orden de índice que la solicitud correspondiente.

Un patrón popular para realizar solicitudes por lotes es el siguiente:

requests = []
requests.append(first request)
requests.append(second request)
...

body = ... & requests & ...

...batchUpdate(body)

Consulta las prácticas recomendadas para las solicitudes por lotes para obtener detalles completos sobre cómo agrupar tus llamadas a la API de Docs y la documents.batchUpdatedocumentación de referencia para los tipos de solicitud y respuesta.

Operaciones de actualización por lotes

Existen varios tipos de solicitudes de actualización por lotes. A continuación, se muestra un desglose de los tipos de solicitudes, agrupados en diferentes categorías.

Objeto ADD / INSERT UPDATE / REPLACE DELETE
Texto InsertTextRequest ReplaceAllTextRequest
Estilos CreateParagraphBulletsRequest UpdateTextStyleRequest
UpdateParagraphStyleRequest
UpdateTableCellStyleRequest
UpdateTableRowStyleRequest
UpdateDocumentStyleRequest
UpdateSectionStyleRequest
DeleteParagraphBulletsRequest
Rangos con nombre CreateNamedRangeRequest ReplaceNamedRangeContentRequest DeleteNamedRangeRequest
DeleteContentRangeRequest
Imágenes InsertInlineImageRequest ReplaceImageRequest
Tablas InsertTableRequest
InsertTableRowRequest
InsertTableColumnRequest
UpdateTableColumnPropertiesRequest
MergeTableCellsRequest
UnmergeTableCellsRequest
PinTableHeaderRowsRequest
DeleteTableRowRequest
DeleteTableColumnRequest
Objetos de página (incluidos encabezados y pies de página) InsertPageBreakRequest
CreateHeaderRequest
CreateFooterRequest
CreateFootnoteRequest
InsertSectionBreakRequest
DeletePositionedObjectRequest
DeleteHeaderRequest
DeleteFooterRequest