1

我不确定这是解决此类问题的正确位置,如果不是,请指出正确的方向 - 谢谢。

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

我使用了Google Drive API V3 快速入门示例,并且可以正常工作,但是我有一些顾虑。

我想知道如果谷歌通过com.google.api.services.drive.model.File在我调用不同的方法(如getId()og getName())以从我的文件中获取我需要的信息时添加新功能来更改 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

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

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

4

1 回答 1

0

您现在正在做的是使用Google-apis-java-client 库来访问Google Drive API v3 所以在这里您确实需要考虑两件事。

谷歌驱动 API V3:

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

客户端库

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

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

回答者:

类似的事情(向 API 添加新方法)会破坏代码吗?

它不应该。

也许我要问的是如何“在幕后”处理 JSON 的转换。

图书馆应该处理这个。别担心。

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

Drive V3 刚刚问世,如果他们可能在五年后发布一个新的,那么在他们弃用 v3 之前你可能至少需要三年时间。这意味着您可以让您的代码运行十年,然后才会出现问题。

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

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

于 2017-05-09T11:49:58.447 回答