2

連絡先を変更するために軽量のGoogleAPIJavaクライアントを使用しています。

部分的な更新を行う方法を示すAPIのサンプルがいくつかありますが(つまり、HTTP PATCHを介して)、Googleコンタクトは特にPATCHをサポートしていないようです。ドキュメントでは、PUTリクエストで省略された既存のデータは連絡先から削除されるため、PUTを介して行われる連絡先の更新には連絡先に関する完全な情報を含める必要があることも指定されています。

では、連絡先を読み取り、そのデータを変更して更新する最も簡単な手順は何でしょうか。クライアントAPIにはAtomParser、HTTP GETリクエストからの応答を受け取り、クラスのメンバーにデータを入力する優れた機能がありますが、連絡先が持つ可能性のあるすべてのフィールドがクラスに含まれていない限り、すべてのデータを読み取れない可能性があります。 HTTPPUT。

私の唯一の推測は、すべてのクールなAtomParserの魔術をスキップし、単純な古いXMLパーサーを使用して、着信フィードを読み取り、必要な情報を抽出してから、HTTPPUTを実行する必要があるということです。しかし、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());
4

1 に答える 1

1

これこそまさにGenericXmlが設計された目的です。アプリケーションで使用していない任意の XML を格納するため、PUT メソッドを安全に使用できます。データ モデル クラスで拡張するだけです。GenericXml の良い例は、Content API for Shopping のサンプルにあります。また、GenericXml の説明を含むXML モデルの詳細なガイドもあります。うまくいかない場合はお知らせください。

完全開示: 私はgoogle-api-java-clientプロジェクトの所有者です。

于 2011-01-14T15:41:22.607 に答える