本文档介绍了如何对 API 调用进行批处理以减少 您需要建立的网络连接批处理可以提高应用的 减少网络往返次数,提高吞吐量。
概览
客户端建立的每个连接都会产生一定的开销。 Google 幻灯片 API 支持批处理,这样您的客户端就可以放置多个 每个请求对象都指定一种要执行的请求 转换为单个批处理请求批量请求可以通过以下方式提升性能: 将多个子请求合并为对服务器的单个调用,从而检索 返回单个响应。
我们建议用户始终批量处理多个请求。以下是一些 以下是可以使用批处理的情况示例:
- 您刚开始使用该 API,需要上传大量数据。
- 您需要更新多个 对象的操作。
- 您需要删除许多对象。
限制、授权和依赖项注意事项
下面列出了采用批量更新时需要注意的其他事项:
- 每个批量请求(包括所有子请求)都计为一个 API 用量限额请求。
- 一个批量请求需经过一次身份验证。此单一身份验证适用 请求中的所有批量更新对象。
- 服务器会按照子请求在 批量请求。后面的子请求可能取决于 先前的子请求例如,在同一批量请求中,用户可以 将文本插入现有文档,然后设置其样式。
批量详情
一个批量请求包含一个 batchUpdate
方法调用
来处理多个子请求,例如添加演示文稿和设置演示文稿格式。
每个请求都会经过验证,然后才能应用。批次中的所有子请求 update 以原子方式应用更新。也就是说,如果任何请求无效,则 整个更新都失败,并且没有任何(可能依赖的) 更改。
有些请求会在响应中提供与所应用请求相关的信息。 例如,所有用于添加对象的批量更新请求都会返回响应, 您可以访问新添加对象的元数据,如 ID 或 标题。
通过这种方法,您可以使用一个 API 构建整个 Google 文档 使用多个子请求的批量更新请求。
批量请求的格式
“请求”是指包含多个、
具有一个必需属性的嵌套子请求:requests
。通过
请求都是在单个请求的数组中构造而成的。每个请求都使用
JSON,用于表示请求对象并包含其属性。
批量响应的格式
批量请求的 response 格式类似于 请求格式。服务器的响应包含单个 响应对象。
主 JSON 对象的属性名为 replies
。响应
以数组的形式返回,其中对其中一个请求的响应
索引顺序相同。某些请求没有
且该数组索引处的响应为空。
示例
以下代码示例展示了如何使用 Google 幻灯片 API。
请求
此示例批量请求演示了如何执行以下操作:
将
presentations.pages
资源添加到现有演示文稿中,insertionIndex
为1
,使用CreateSlideRequest
方法。使用
shapeType
TEXT_BOX
CreateShapeRequest
方法。插入“Hello World”使用
InsertTextRequest
方法。
{ "requests":[ { "createSlide":{ "insertionIndex":1, "objectId":"newSlide" } }, { "createShape":{ "elementProperties":{ "pageObjectId":"newSlide", "size":{ "height":{ "magnitude":50, "unit":"PT" }, "width":{ "magnitude":200, "unit":"PT" } } }, "shapeType":"TEXT_BOX", "objectId":"newTextBox" } }, { "insertText":{ "objectId":"newTextBox", "text":"Hello World" } } ] }
响应
此示例批量响应显示了以下信息:
已应用该批量请求。请注意
InsertTextRequest
方法不包含响应,因此 [2] 处的数组的索引值
由空花括号组成。批量请求会显示
WriteControl
属性,它显示写入请求的执行方式。
{ "requiredRevisionId": ID "presentationId": "", "replies":[ { "createSlide":{ "objectId":"newSlide" } }, { "createShape":{ "objectId":"newTextBox" } }, { } ], "writeControl":{ "requiredRevisionId": REVISION_ID } }