Frage

Ich bin den leichten Google API Java-Client Kontakte zu ändern.

Es gibt ein paar Beispiele für die API zeigt, wie partielles Updates zu tun (das heißt über HTTP PATCH), aber Google-Kontakte scheinen speziell nicht auf Unterstützung PATCH. Die docs auch angeben, dass Kontakte Updates via PUT Bedarf erfolgte die vollständigen Informationen über den Kontakt aufzunehmen, da alle vorhandenen Daten in der PUT-Anforderung weggelassen werden aus dem Kontakt entfernt werden.

Also, was ist das einfachste Verfahren, um einen Kontakt zu lesen, seine Daten zu ändern und aktualisieren? Die Client-API hat diesen schönen AtomParser, die die Antwort von der nimmt HTTP-GET-Anforderung und füllen Mitglieder in meiner Klasse, aber es sei denn, meine Klasse jedes mögliche Feld enthält, dass ein Kontakt haben könnte, könnte ich nicht gelesen in allen Daten und als solche zu entfernenden Daten während der HTTP PUT.

Meine einzige Vermutung ist, dass ich alle Hexerei der kühlen AtomParser überspringen habe und verwenden Sie nur einen einfachen alten XML-Parser den eingehenden Feed zu lesen, die Informationen, die ichduersiees Notwendigkeit extrahieren und dann auf sie ein HTTP PUT zu tun. Aber das scheint ein wenig absurd, da alle Funktionen int er API-Client. Gibt es einen besseren Weg?

Ich hoffe, heimlich gibt es ein Äquivalent dazu:

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());
War es hilfreich?

Lösung

Das ist genau das, was GenericXml wurde entwickelt für: es speichert beliebige XML, dass Sie nicht in Ihrer Anwendung verwenden, so dass Sie sicher die PUT-Methode verwenden können. erweitern Sie es einfach in Ihren Datenmodellklassen. Ein gutes Beispiel für GenericXml in der Probe für die Content API finden für Einkaufen . Sie haben auch eine detaillierte Anleitung des XML-Modell eine Diskussion mit von GenericXml. Lassen Sie uns wissen, wenn es nicht Arbeit für Sie.

Vollständige Offenlegung: Ich bin ein Besitzer der google-api-Java- Client Projekt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top