google 日历停止支持 json rpc 和 api-java-client

google calendar discontinuing support for json rpc and api-java-client

我们使用 Google API Calendar v3,Google 表示他们将停止支持 json rpc Discontinuing support for JSON-RPC and Global HTTP Batch Endpoints

我找不到他们是否计划兼容 v4 版本或当前版本是否兼容。文档不参考它。 Java Quickstart

有这方面的信息吗?

不仅仅是日历受到影响,所有 Google API 的发现 API 都受到影响。批处理端点

POST /batch HTTP/1.1
Authorization: Bearer your_auth_token
Host: www.googleapis.com
Content-Type: multipart/mixed; boundary=batch_foobarbaz
Content-Length: total_content_length

将于 2019 年 3 月 25 日左右停用。话虽如此,我怀疑客户端库是否已全部更新以将其删除。我是其中两个的贡献者,还没有听说过有关从库中删除批处理功能的任何消息。

Google API Client Libraries have been regenerated to no longer make requests to the global HTTP batch endpoint. Clients using these libraries must upgrade to the latest version. Clients not using the Google API Client Libraries and/or making custom calls to the JSON-RPC endpoint or HTTP batch endpoint will need to make the changes outlined below.

全局批处理端点是

www.googleapis.com/batch

新的是

www.googleapis.com/batch/<api>/<version>

我认为这里的单词选择不正确,如果需要它们会重新生成。这一变化应该不会影响用户,只有一个例外。由于终点是 API 特定的,因此异构批处理请求在调用中包含多个 API 的单个批处理请求将无法工作。

现在,据我所知,坏消息是没有任何东西可以取代它。您将无法发出异类批处理请求。 Google api java 客户端库似乎使用旧端点 BatchRequest.java 因此,如果您使用异构批处理,您将不得不在他们更新库以支持时更改代码新 API 特定端点。

更新

在过去 24 小时内与 Google 多次交流后,我对 post 有了一些澄清。

  1. 批处理仍可用于客户端库
  2. 大多数客户端库似乎已经在使用此端点,因此应该没有变化。
  3. 您只能在一个批处理请求中调用一个 API。例如,您不能在同一个批处理请求中调用 drive 和 calendar API。您将必须提出两个批处理请求,一个用于驱动器,一个用于日历。

可能会对该 post 进行一些编辑,使语言更加清晰。

我更新了我的回答以反映来自 Google

的澄清

它并没有完全删除批处理。

根据 blog 他们正在删除异构批处理 - 使用导致其他 API 的请求访问相同的 API。他们还将同质批处理(批处理到相同的 API 并导致单个 API)合并到 "API specific batch endpoints".

根据我对博客的理解,如果您正在批处理多个不同的请求,即。一个 Foo 请求和一个 Bar 请求到一个 Foo API 调用中,您将不得不调整您的代码以对一个使用一个批次,另一个使用一个批次。如果你已经这样做了,不清楚你是否需要更改你的代码,也许新发布的库将有一种新的方式来处理这些请求。