2017-05-09 37 views
1

我不確定這是否適合這類問題,如果不是的話,請指點我正確的方向 - 謝謝。Drive API中的穩定性java應用程序

在許多不同的地方尋找了很多之後,我認爲你是我最後的希望:)

我已經使用了Google Drive API V3 Quickstart樣品,我有但它工作,我有一些顧慮。

我不知道如果谷歌通過添加新功能的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)要打破的代碼?

我當然會使用任何相關的錯誤處理,但是我並不想回頭改變代碼中的某些東西,因爲新的東西已經被添加了第三部分。

也許什麼i'm問的是如何JSON的轉換處理「幕後」,如果這次談話可以處理新成員JSON代碼而不破..

也許谷歌從來沒有改變任何東西,只是我們提供的API

我敢肯定谷歌的新版本已經想到了這一點,但那不是一個可以接受的說法給我的客戶:)

我真的很感激在這個問題上的任何幫助。

+0

Web服務(以及負責人)通常會對其API進行版本化。所以,如果你使用'v3',那麼你正在擊中某個端點,如果谷歌決定推出'v4',那麼這一點不會改變。所以我認爲你不需要擔心太多。 –

回答

0

你現在正在使用的是使用Google-apis-java-client library來訪問Google Drive API v3所以你真的有兩件事情要考慮在這裏。

Google Drive API V3:

讓我們先看看api本身。 Google Drive API v3在2016年發佈時相當新穎,如果有任何漏洞Google會發布錯誤修復。我已經使用Google API五年了。 Google不會發布對這些API的重大更改。他們不時發佈增強功能或修復錯誤。谷歌不是一個突破變化的粉絲。大多數情況下,即使谷歌在其最終版本上進行了更改,您的代碼仍應繼續針對API工作。在我使用Google API的時候,我從來沒有看到他們發佈任何超出我的代碼的東西。

客戶端庫

現在讓我們考慮用於java的Google API客戶端庫。這只是一堆讓你更容易訪問API的jar文件。大多數情況下,Google客戶端庫都是生成的代碼。因此,如果Drive API中有更改,客戶端庫將被重建以提取任何更改。如果您沒有更新項目中的jar文件,那麼您的項目將繼續工作,您將無法訪問可能已添加到API本身的任何新功能。如果您決定更新到最新的jar文件,您將能夠利用任何新功能或錯誤修復程序,並且您的代碼仍應繼續工作。與這些客戶端庫一起工作的團隊很少引入重大更改。

我意識到這些年來在Google API .net客戶端庫中引入了一些突破性更改。當我們發現它們時,我們總是非常善於快速修復它們。我敢打賭,Java客戶端庫團隊是一樣的。這可能會發生,但國際海事組織的風險非常小,我不受任何這些問題的影響。

Anwsers:

是類似的東西(添加新的方法到API)要打破的代碼?

它不應該。

也許我問的是如何處理JSON的轉換「幕後」。

庫應該處理這個。不要擔心。

也許谷歌從來沒有改變任何東西,只是我們提供的API

驅動V3剛出來的新版本,如果他們釋放了大概5年時間一個新的,那麼你可能會至少三年之後,他們會棄用v3。這意味着在出現問題之前,您可能會讓代碼運行10年。

我敢肯定谷歌已經想到了這一點,但那不是一個可以接受的說法給我的客戶:)

客戶是很難安撫。這是可以理解的。試着告訴他們Google多年來一直在做這件事,而且他們總是盡力確保他們做的任何事情都不會破壞現有的解決方案。

+0

非常感謝,preatty很多涵蓋它。 謝謝@DaImTo – Nyvang

相關問題