Drive API java 应用程序的稳定性

Stabillity in Drive API java app

我不确定这里是否适合此类问题,如果不是,请指出正确的方向 - 谢谢。

在许多不同的地方搜索了很多之后,我认为你是我最后的希望:)

我已经使用了 Google Drive API V3 Quickstart 示例,并且可以正常使用,但是我有一些顾虑。

我想知道如果 Google 通过向 com.google.api.services.drive.model.File 添加新功能来更改 API 会发生什么情况,当我调用不同的方法(如 getId() og getName()) 从我的文件中获取我需要的信息。请参阅下面示例中的最后一个 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 的转换 "behind the scenes" 以及此对话是否可以在不中断的情况下将新成员处理为 JSON 代码..

也许 Google 永远不会改变任何东西,只是为我们提供 API

的新版本

我确定 Google 已经想到了这一点,但这不是我的客户可以接受的论点:)

我非常感谢在这件事上的任何帮助。

你现在正在做的是使用 Google-apis-java-client library to access the Google Drive API v3 所以你真的有两件事要考虑。

Google 驱动器 API V3:

让我们先看看 api 本身。 Google Drive API v3 是相当新的,它于 2016 年发布,如果有任何错误 Google 将发布错误修复。我已经与 Google APIs 合作五年了。 Google 不会发布 API 中的重大更改。他们会不时发布增强功能和/或错误修复。 Google 不喜欢破坏性更改。在大多数情况下,即使 google 对它们进行了更改,您的代码也应该继续针对 API 工作。在我与 Google APIs 一起工作的时候,我从未见过他们发布任何完全破坏我的代码的东西。

客户端库

现在让我们考虑 java 的 Google API 客户端库。这只是一堆 jar 文件,可以让您更轻松地访问 API。在大多数情况下 Google 客户端库是生成的代码。因此,如果驱动器 API 中有更改,客户端库将被重建以获取任何更改。如果您不更新项目中的 jar 文件,那么您的项目将继续工作,您将无法访问可能已添加到 API 本身的任何新功能。如果您确实决定更新到最新的 jar 文件,您将能够利用任何新功能或错误修复,并且您的代码应该仍然可以继续工作。使用这些客户端库的团队很少引入重大更改。

我知道这些年来 Google API .net 客户端库中引入了一些重大更改。当我们找到它们时,我们总是非常擅长快速修复它们。我愿意打赌 Java 客户端库团队是一样的。它可能会发生,但 IMO 的风险非常小,我个人没有受到任何这些问题的影响。

回答者:

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 :)

客户很难放心。这是可以理解的。试着告诉他们 Google 多年来一直这样做,并且他们总是努力确保他们所做的任何事情都不会破坏现有的解决方案。