请求和响应

本指南介绍了构成 Google 文档 API 的主要请求和响应方法,以及如何批量更新文档。

您可以使用 HTTP 请求或通过特定于语言的 客户端 库中的方法 调用来调用 Google 文档 API。这两种方式大致等效。

Google 文档 API 会返回 HTTP 响应,该响应通常包含请求调用的结果。使用客户端库发出请求时,响应会以特定于语言的方式返回。

请求方法

文档 API 支持以下方法:

  • documents.create:创建空白 Google 文档。

  • documents.get:返回指定文档的完整实例。您可以解析返回的 JSON,以提取文档内容、格式和其他功能。

  • documents.batchUpdate:提交编辑请求列表,以原子方式应用于文档,并返回结果列表。

documents.getdocuments.batchUpdate 方法需要 documentId 作为参数来指定目标文档。documents.create 方法会返回所创建文档的实例,您可以从中读取 documentId。如需详细了解 documentId,请参阅 Document ID

已发布的文档

您无法使用 documents.get 方法检索已发布的文档。发布后,公开文档会使用不同的网址格式,并具有不同的公开 documentId。尝试将公开 documentIddocuments.get 方法搭配使用会返回 404 HTTP 状态代码响应。

同样,您也无法使用 Drive API files.copy 方法复制已发布的文档。

如需检索或复制已发布的文档,您必须使用原始 documentId。没有从已发布的网址中提取原始 documentId 的方法。

如需了解详情,请参阅:

批量更新

The documents.batchUpdate 方法接受 request 对象列表, 每个对象都指定要执行的单个请求。例如,设置段落格式,然后添加内嵌图片。每个请求在应用之前都会经过验证,并且请求会按照它们在批量请求中出现的顺序进行处理。

批量更新中的所有请求都以原子方式应用。也就是说,如果有任何请求无效,则整个更新都会失败,并且不会应用任何(可能存在依赖关系的)更改。

某些 documents.batchUpdate 方法会提供包含有关已应用请求的信息的响应。这些方法会返回包含 response 对象列表的 response body 。其他请求不需要返回信息,并且会显示空回复。响应列表中的对象与相应请求的索引顺序相同。

发出批量请求的常用模式如下所示:

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

body = ... & requests & ...

...batchUpdate(body)

如需详细了解如何批量处理文档 API 调用,请参阅批量请求最佳实践;如需了解请求和响应类型,请参阅 documents.batchUpdate 参考文档。

批量更新操作

批量更新请求有多种类型。下面按不同类别细分了 请求类型, 。

对象 添加 / 插入 更新 / 替换 删除
文本 InsertTextRequest ReplaceAllTextRequest
样式 CreateParagraphBulletsRequest UpdateTextStyleRequest
UpdateParagraphStyleRequest
UpdateTableCellStyleRequest
UpdateTableRowStyleRequest
UpdateDocumentStyleRequest
UpdateSectionStyleRequest
DeleteParagraphBulletsRequest
命名范围 CreateNamedRangeRequest ReplaceNamedRangeContentRequest DeleteNamedRangeRequest
DeleteContentRangeRequest
Google 图片 InsertInlineImageRequest ReplaceImageRequest
表格 InsertTableRequest
InsertTableRowRequest
InsertTableColumnRequest
UpdateTableColumnPropertiesRequest
MergeTableCellsRequest
UnmergeTableCellsRequest
PinTableHeaderRowsRequest
DeleteTableRowRequest
DeleteTableColumnRequest
页面对象(包括页眉页脚 InsertPageBreakRequest
CreateHeaderRequest
CreateFooterRequest
CreateFootnoteRequest
InsertSectionBreakRequest
DeletePositionedObjectRequest
DeleteHeaderRequest
DeleteFooterRequest