Solicitações e respostas

Este guia apresenta os principais métodos de solicitação e resposta que compõem a API Google Docs e como atualizar um documento em lotes.

É possível invocar a API Google Docs usando uma solicitação HTTP ou uma invocação de método em uma biblioteca de cliente específica de uma linguagem. Elas são equivalentes.

A API Google Docs retorna uma resposta HTTP, que geralmente inclui o resultado da invocação da solicitação. Ao usar uma biblioteca de cliente para fazer solicitações, as respostas são retornadas de uma maneira específica do idioma.

Métodos de solicitação

A API Docs é compatível com os seguintes métodos:

  • documents.create: crie um documento em branco do Google Docs.

  • documents.get: Retorna uma instância completa do documento especificado. É possível analisar o JSON retornado para extrair o conteúdo, a formatação e outros recursos do documento.

  • documents.batchUpdate: envie uma lista de solicitações de edição para aplicar atomicamente ao documento e retorne uma lista de resultados.

Os métodos documents.get e documents.batchUpdate exigem um documentId como parâmetro para especificar o documento de destino. O método documents.create retorna uma instância do documento criado, em que é possível ler o documentId. Para mais informações sobre documentId, consulte ID do documento.

Não é possível usar o método documents.get para recuperar documentos publicados. Depois de publicados, os documentos públicos usam um formato de URL diferente. As tentativas de usar o novo documentId do URL com o método documents.get retornam uma resposta de código de status HTTP 404. Não há métodos para recuperar o documentId original do URL publicado. Para contornar esse problema, use a API Drive para copiar o documento publicado em um documento compartilhado e acesse esse arquivo. Para mais informações, consulte Tornar público um arquivo do Documentos, Planilhas, Apresentações e Formulários Google.

Atualizações em lote

O método documents.batchUpdate usa uma lista de objetos request, cada um especificando uma única solicitação a ser realizada. Por exemplo, formate um parágrafo e adicione uma imagem inline. Cada solicitação é validada antes de ser aplicada, e elas são processadas de acordo com a ordem em que aparecem na solicitação em lote.

Todas as solicitações na atualização em lote são aplicadas atomicamente. Ou seja, se uma solicitação não for válida, toda a atualização vai falhar e nenhuma das mudanças (potencialmente dependentes) será aplicada.

Alguns métodos documents.batchUpdate fornecem respostas com informações sobre as solicitações aplicadas. Esses métodos retornam um corpo da resposta que contém uma lista de objetos response. Outras solicitações não precisam retornar informações e mostram uma resposta vazia. Os objetos na lista de respostas ocupam a mesma ordem de índice da solicitação correspondente.

Um padrão comum para fazer solicitações em lote é assim:

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

body = ... & requests & ...

...batchUpdate(body)

Consulte as práticas recomendadas para solicitações em lote e saiba como fazer isso com as chamadas da API Docs e a documentação de referência documents.batchUpdate para tipos de solicitação e resposta.

Operações de atualização em lote

Há vários tipos de solicitações de atualização em lote. Confira uma análise dos tipos de solicitação, agrupados em diferentes categorias.

Objeto ADICIONAR / INSERIR UPDATE / REPLACE EXCLUIR
Texto InsertTextRequest ReplaceAllTextRequest
Estilos CreateParagraphBulletsRequest UpdateTextStyleRequest
UpdateParagraphStyleRequest
UpdateTableCellStyleRequest
UpdateTableRowStyleRequest
UpdateDocumentStyleRequest
UpdateSectionStyleRequest
DeleteParagraphBulletsRequest
Intervalos nomeados CreateNamedRangeRequest ReplaceNamedRangeContentRequest DeleteNamedRangeRequest
DeleteContentRangeRequest
Imagens InsertInlineImageRequest ReplaceImageRequest
Tabelas InsertTableRequest
InsertTableRowRequest
InsertTableColumnRequest
UpdateTableColumnPropertiesRequest
MergeTableCellsRequest
UnmergeTableCellsRequest
PinTableHeaderRowsRequest
DeleteTableRowRequest
DeleteTableColumnRequest
Objetos de página (incluindo cabeçalhos e rodapés) InsertPageBreakRequest
CreateHeaderRequest
CreateFooterRequest
CreateFootnoteRequest
InsertSectionBreakRequest
DeletePositionedObjectRequest
DeleteHeaderRequest
DeleteFooterRequest