Как сделать частичное обновление контактов с помощью Google API API -клиента?
-
11-10-2019 - |
Вопрос
Я использую легкий клиент Google API Java для изменения контактов.
Есть несколько образцов для API, показывающих, как делать частичные обновления (т.е. через патч HTTP), но контакты Google, в частности, не поддерживают патч. Документы также указывают, что контакты обновления, выполненные с помощью необходимости включения полной информации о контакте, поскольку любые существующие данные, опущенные в запросе POT, будут удалены из контакта.
Итак, какова самая простая процедура для чтения контакта, изменить его данные и обновить его? У клиента API есть это приятное AtomParser
Это получает ответ от HTTP GET -запроса и населяет участников в моем классе, но если мой класс не содержит все возможные поля, которые мог бы иметь контакт, я мог бы не читать во всех данных и как таковые данные во время пута HTTP.
Я предполагаю, что мне придется пропустить все прохладные колдовства AtomParser и просто использовать простой старый анализатор XML, чтобы прочитать входящий канал, извлечь необходимую информацию, а затем сделать его HTTP. Но это кажется немного абсурдно, учитывая все функциональные возможности, клиент API. Есть ли способ лучше?
Я тайно надеюсь, что есть эквивалент этого:
HttpRequest request = transport.buildPatchRequest();
request.setUrl(getEditLink());
AtomPatchRelativeToOriginalContent content =
new AtomPatchRelativeToOriginalContent();
content.namespaceDictionary = Namespace.DICTIONARY;
content.originalEntry = originalEntry;
content.patchedEntry = modifiedEntry;
request.content = content;
return RedirectHandler.execute(request).parseAs(getClass());
Решение
Вот что именно Geneicxml Был разработан для: он хранит произвольный XML, который вы не используете в своем приложении, чтобы вы могли безопасно использовать метод POT. Просто расширите его в классах модели данных. Хороший пример GenericXML можно найти в Образец для API контента для покупок. Анкет У них также есть Подробное руководство модели XML в том числе обсуждение Genericxml. Дайте мне знать, если это не сработает для вас.
Полное раскрытие: я владелец Google-Api-Java-Client проект.