8

我收到通知,Google的 JSON-RPC 和 Global HTTP Batch Endpoints 已弃用。在我的例子中,受影响的 api 是“storage@v1”和“Global Batch Endpoints”。

我试图找到被贬低的 api 调用来自哪里。但我正在使用 24 个存储桶和几个访问它的工具。那么有没有办法记录被贬低的电话?我为存储桶启用了日志记录。在执行批处理请求和执行单个请求时,我在访问日志中找不到任何区别。

4

2 回答 2

5

是的“在单个请求中跨多个 API 进行批处理”已停止使用 停止支持 JSON-RPC 和全局 HTTP 批处理端点

但它难以理解的是正在停产的究竟是什么。

有两个批处理端点。全局www.googleapis.com/batch 的和 API 特定的www.googleapis.com/batch/<api>/<version>

那么有什么变化呢?

全局批处理端点正在下降。这意味着您将无法再拨打电话www.googleapis.com/batch。如果您同时发出混合两个 api 的批处理请求,例如 Drive 和 Gmail,那么在更糟糕的情况下,这意味着什么,您将无法再这样做了。

将来您将不得不通过 API 拆分批处理请求。

这会影响你吗?

代码方面,这取决于您当前使用的客户端库。其中一些已经更新为使用单个 api 端点(JavaScript 和 .net),还有一些尚未更新(我上次检查的 php 和 java)

现在,至于您的存储桶,如果我正确理解它们,它们都将插入同一个地方,因此您使用相同的 api 这可能会影响您。您也在使用 Google 的 SDK,他们会不断更新。

笔记

这篇博文非常令人困惑,现在谷歌周围有一些内部电子邮件,试图弄清楚这对开发人员意味着什么。

于 2018-04-04T12:41:50.110 回答
1

您必须直接或通过代码中的库找到在哪里执行异构批处理请求。在任何情况下,批处理请求都不会反映在您的存储桶日志中,因为没有 API 或 API 方法本身被弃用,只是一种调用发送它们的方式。

详细地

您可以将多个对不同 API 的请求捆绑到一个批处理请求中。该批次将被发送到一个神奇的Google 服务器,该服务器将批次拆分并将其中的所有 API 请求路由到各自的服务中。

该 Google 服务器将被删除,因此所有内容都必须直接发送到该服务。

你该怎么办?

我看起来您正在发出异构批处理请求,因为只提到了一项服务,即存储。可能您应该执行这些选项之一。

  • 如果您使用的是 Cloud Libraries -> 更新它们。

  • 查找您是否正在访问以下 URL

www.googleapis.com/batch

并用适当的同质批处理 API替换它,在您的情况下是

www.googleapis.com/batch/storage/v1
  • 如果您使用 batchPath,这似乎是一篇相关文章

否则,如果您使用 gapi 进行异构调用,这似乎不是您的情况,请拆分如下内容:

 request1 = gapi.client.urlshortener(...)
 request2 = gapi.client.storage.buckets.update(...)
 request3 = gapi.client.storage.buckets.update(...)

 heterogeneousBatchRequest = gapi.client.newBatch();
 heterogeneousBatchRequest.add(request1);
 heterogeneousBatchRequest.add(request2);  
 heterogeneousBatchRequest.add(request3);  

变成这样的东西

 request1 = gapi.client.urlshortener(...)
 urlshortnerbatch = gapi.client.newBatch();
 urlshortnerbatch.add(request1);

 request2 = gapi.client.storage.buckets.update(...)
 request3 = gapi.client.storage.buckets.update(...)
 storagebatch.add(request2);  
 storagebatch.add(request3);  

官方文档

这里描述了如何使用 Storage API 进行批量请求。

于 2018-04-18T16:01:52.217 回答