Как выполнить частичное обновление контактов с помощью Google API Java-клиента? - PullRequest
2 голосов
/ 14 января 2011

Я использую облегченный Java-клиент Google API для изменения контактов.

Существует несколько примеров API, показывающих, как выполнять частичные обновления (т. Е. Через HTTP PATCH), но, похоже, Контакты Google не поддерживают PATCH. В документах также указано, что обновления контактов, выполняемые через PUT, должны включать полную информацию о контакте, поскольку любые существующие данные, пропущенные в запросе PUT, будут удалены из контакта.

Итак, как проще всего прочитать контакт, изменить его данные и обновить его? Клиентский API имеет этот прекрасный AtomParser, который принимает ответ от HTTP-запроса GET и заполняет членов в моем классе, но если мой класс не содержит все возможные поля, которые может иметь контакт, я мог бы не прочитать все данные и, как таковые, удалить данные во время HTTP PUT.

Мое единственное предположение, что мне придется пропустить все классное колдовство AtomParser и просто использовать обычный старый XML-парсер, чтобы прочитать входящий фид, извлечь нужную мне информацию и затем выполнить HTTP PUT для него. Но это кажется немного абсурдным, учитывая всю функциональность 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());

1 Ответ

1 голос
/ 14 января 2011

Это именно то, для чего GenericXml был разработан: он хранит произвольный XML, который вы не используете в своем приложении, поэтому вы можете безопасно использовать метод PUT. Просто расширьте его в своих классах модели данных. Хороший пример GenericXml можно найти в образце для Content API for Shopping . У них также есть подробное руководство по модели XML , включая обсуждение GenericXml. Дайте мне знать, если это не сработает для вас.

Полное раскрытие: я владелец проекта google-api-java-client .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...