Стабильность в Java-приложении Drive API

Я не уверен, что это правильное место для такого рода вопросов, если нет, пожалуйста, укажите мне правильное направление - спасибо.

После многих поисков в разных местах, я думаю, что ты моя последняя надежда:)

Я использовал пример Google Drive API V3 Quickstart, и он у меня работает, но у меня есть несколько проблем.

Интересно, что произойдет, если Google изменит API, добавив новую функциональность в com.google.api.services.drive.model.File когда я вызываю разные методы (например, getId() ог 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 "за кулисами" и может ли этот диалог обрабатывать новых членов в коде JSON без прерывания...

Возможно, Google никогда ничего не меняет и просто предоставляет нам новую версию API

Я уверен, что Google думал об этом, но это не приемлемый аргумент для моего клиента:)

Я действительно ценю любую помощь в этом вопросе.

1 ответ

Решение

Сейчас вы используете библиотеку Google-apis-java-client для доступа к Google Drive API v3. Здесь у вас есть две вещи, на которые стоит обратить внимание.

Google Drive API V3:

Давайте сначала посмотрим на сам API. Google Drive API v3 является довольно новым, он был выпущен в 2016 году, если будут какие-либо ошибки, Google выпустит исправления ошибок. Я работаю с Google API уже пять лет. Google не публикует срочные изменения в этих API. Они время от времени выпускают улучшения и / или исправления ошибок. Google не является поклонником критических изменений. По большей части ваш код должен продолжать работать против API, даже если Google вносит изменения в их конце. За время работы с API Google я никогда не видел, чтобы они выпускали что-то, что прямо нарушало мой код.

Клиентская библиотека

Теперь давайте рассмотрим клиентскую библиотеку Google API для Java. Это просто набор jar-файлов, облегчающих доступ к API. По большей части в клиентских библиотеках Google генерируется код. Таким образом, если в Drive API есть изменения, клиентская библиотека будет перестроена, чтобы принять любые изменения. Если вы не обновите файл jar в своем проекте, тогда ваш проект продолжит работать, у вас просто не будет доступа ни к одной из новых функций, которые могли быть добавлены в сам API. Если вы решите обновить файл JAR до последней версии, вы сможете воспользоваться любыми новыми функциями или исправлениями ошибок, и ваш код по-прежнему должен продолжать работать. Команды, которые работают с этими клиентскими библиотеками, очень редко вносят критические изменения.

Мне известно о нескольких серьезных изменениях, которые были внесены в клиентскую библиотеку Google API .net за эти годы. Когда мы их находим, мы всегда очень быстро их исправляем. Я был бы готов поспорить, что команда Java-библиотек одинакова. Это может произойти, но риск IMO очень минимален, я не был лично затронут ни одним из этих вопросов.

Anwsers:

Что-то подобное (добавление новых методов в API) нарушит код?

Не должно.

Может быть, я спрашиваю, как происходит преобразование JSON "за кулисами".

Библиотека должна справиться с этим. Не беспокойся об этом.

Возможно, Google никогда ничего не меняет и просто предоставляет нам новую версию API

Диск V3 только что вышел, если они выпустят новый, вероятно, через пять лет, и тогда у вас будет, по крайней мере, три года, прежде чем они устареют перед v3. Это означает, что вы можете оставить свой код работающим, возможно, десять лет, прежде чем возникнет проблема.

Я уверен, что Google думал об этом, но это не приемлемый аргумент для моего клиента:)

Клиентов очень сложно успокоить. Это понятно. Просто попытайтесь сказать им, что Google делает это годами и что они всегда стараются убедиться, что ничто из того, что они сделают, не сломает существующие решения.

Другие вопросы по тегам