Стабильность в 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 делает это годами и что они всегда стараются убедиться, что ничто из того, что они сделают, не сломает существующие решения.