我不确定这是解决此类问题的正确位置,如果不是,请为我指出正确的方向 - 谢谢。
在很多不同的地方寻找了很多之后,我认为你是我最后的希望:)
我已经使用了Google Drive API V3 Quickstart示例,我可以使用它,但我有一些担忧。
我想知道,当我调用不同的方法(例如 getId()
和 getName()
)从文件中获取我需要的信息时,如果 Google 通过向 com.google.api.services.drive.model.File
添加新功能来更改 API,会发生什么。请参阅下面示例中的最后一个 System.out.printf()
。
示例代码:
...
public static void main(String[] args) throws IOException {
// Build a new authorized API client service.
Drive service = getDriveService();
// Print the names and IDs for up to 10 files.
FileList result = service.files().list()
.setPageSize(10)
.setFields("nextPageToken, files(id, name)")
.execute();
List<File> files = result.getFiles();
if (files == null || files.size() == 0) {
System.out.println("No files found.");
} else {
System.out.println("Files:");
for (File file : files) {
System.out.printf("%s (%s)\n", file.getName(), file.getId());
}
}
}
....
类似的事情(向 API 添加新方法)会破坏代码吗?
我当然会使用任何相关的错误处理,但是我真的不想返回并更改代码中的某些内容,因为已经从第三方添加了新内容。
也许我要问的是如何“在幕后”处理 JSON 的转换,以及此对话是否可以在不中断的情况下处理 JSON 代码的新成员。
也许 Google 从未改变任何内容,只是为我们提供了新版本的 API
我确信 Google 已经考虑到了这一点,但这对我的客户来说不是一个可以接受的论点:)
我真的很感谢在这件事上的任何帮助。
最佳答案
您现在正在做的是使用 Google-apis-java-client library访问Google Drive API v3所以你在这里确实有两件事需要考虑。
Google 云端硬盘 API V3:
让我们先看看 api 本身。 Google Drive API v3 相当新,它于 2016 年发布,如果有任何错误 Google 将发布错误修复。我使用 Google API 已有五年了。 Google 不会发布对 API 的重大更改。他们会不时发布增强功能和/或错误修复。谷歌不喜欢突破性的改变。在大多数情况下,即使谷歌最终进行了更改,您的代码也应该继续针对 API 工作。在我使用 Google API 的过程中,我从未见过他们发布过任何破坏我代码的东西。
客户端库
现在让我们考虑一下 Java 的 Google API 客户端库。这只是一堆 jar 文件,可以让您更轻松地访问 API。大多数情况下,Google 客户端库都是生成的代码。因此,如果 Drive API 发生更改,客户端库将被重建以获取任何更改。如果您不更新项目中的 jar 文件,那么您的项目将继续工作,您只是无法访问可能已添加到 API 本身的任何新功能。如果您决定更新到最新的 jar 文件,您将能够利用任何新功能或错误修复,并且您的代码应该仍然可以继续工作。使用这些客户端库的团队很少引入重大更改。
我知道多年来 Google API .net 客户端库中引入了一些重大更改。当我们发现它们时,我们总是非常擅长快速修复它们。我敢打赌 Java 客户端库团队也是一样。它可能会发生,但在我看来风险非常小,我个人没有受到任何这些问题的影响。
答案:
Is something like that (adding new methods to the API) going to break the code?
不应该。
Maybe what i´m asking is how the conversion of JSON is handled "behind the scenes".
图书馆应该处理这个问题。别担心。
Maybe Google never changes anything and just provide us with a new version of the API
Drive V3 刚刚发布,如果他们发布新版本,可能需要五年时间,然后您可能至少需要三年时间,他们才会弃用 v3。这意味着您可以让代码运行大约十年,然后才会出现问题。
I´m sure Google have thought of this, but thats not an acceptable argument to my client :)
很难让客户放心。这是可以理解的。只要尝试告诉他们,谷歌多年来一直在这样做,并且他们总是尽力确保他们所做的任何事情都不会破坏现有的解决方案。
关于java - Drive API java 应用程序的稳定性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43868247/