Drive API java app中的稳定性

时间:2017-05-09 11:10:08

标签: java json google-api google-drive-api stability

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

在很多不同的地方搜索了很多,我想你是我最后的希望:)。

我已经使用过Google Drive API V3 Quickstart样本了,但是我有一些问题。

我想知道当我调用不同的方法(例如com.google.api.services.drive.model.File og getId())来获取信息时Google通过向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

我确定谷歌已经想到了这一点,但这对我的客户来说不是一个可接受的论点:)

我真的很感激这方面的任何帮助。

1 个答案:

答案 0 :(得分:0)

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

Google Drive API V3:

让我们先看看api本身。 Google Drive API v3相当新,它于2016年发布,如果有任何错误,谷歌将发布错误修复程序。我已经使用Google API五年了。谷歌没有对API发布重大变化。他们会不时发布增强功能或错误修复程序。谷歌并不是打破变革的粉丝。在大多数情况下,即使谷歌在其末端进行更改,您的代码仍应继续使用API​​。在我使用Google API的过程中,我从未见过他们发布任何正确破坏我代码的内容。

客户端库

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

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

Anwsers:

  

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

不应该。

  

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

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

  

也许Google从未改变任何内容,只是向我们提供了新版本的API

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

  

我确定谷歌已经想到了这一点,但这对我的客户来说不是一个可接受的论点:)

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