5

まず最初に、Google GData APIのエンジニアの優れた業績に感謝します。この質問は、何も批判することを意図したものではありません。それはただ物事を指摘するだけです。

誰かが私にそれを説明してもらえますか?私が見る限り、Javaのgoogleapiクライアントライブラリの開発者は車輪を再発明しています。これは、Javaプロジェクト用の新しいJDKを作成するようなものです。これは、abderaクライアントがgoogle apiクライアントライブラリと同じように機能し、abderaサーバーの機能とアダプターをエントリの永続性などの多くの目的に使用できるためです。

グーグルデータプロトコルが少し特定のアトムパブリッシングであるという事実を知っていますが、Apache Abderaプロジェクトがこのプロトコルに提供する素晴らしい拡張機能のいくつかを使用する必要がある場合は、グーグルAPIクライアントライブラリを使用しない方が良いですそして、Abderaを使用してクライアントを最初から実装します...そして、多くの場合、AbderaのJCRアダプターなどの機能は、Googleドキュメント、Googleトランスレーターツールキット、および他のほとんどのツールにとって非常に便利になると確信しています。

これで、Googleドキュメントに使用されるGoogle APIクライアントライブラリがあるのは素晴らしいことですが、ドキュメントとAtomフィードの応答をどうするのでしょうか。半数以上の場合、反対側にもリポジトリやデータベースがあると思います。その場合、フィードをマーシャリング/アンマーシャリングするだけの単純なgoogle apiクライアントではなく、abderaが必要です...

実際、すべてのgoogleAPIには永続的なものがあります。グーグルがアブデラの強化または統合に努力を投資することを決定した場合、それは理にかなっています...これはそうではありません...特にソフトウェア開発で非常によく知られている事実を考えると、その2番目のリリースは通常最初から書き直されます。Apache Abderaは、5年の歴史を持つ成熟したプロジェクトであり、多くのアプリで使用されています。

理由があり、プルパーサーのみを使用してクライアントを実装することが本当に必要であるという理由がある場合は、少なくとも非推奨ではないxmlプルパーサーを使用します。Xmlpull.orgは6年前のものですが、非アクティブであり、StAXAPIも実装していません。stax.codehaus.orgリファレンス実装、JREのデフォルトのstax実装、Apache Axiom実装、そして主にwoodstox.codehaus.org実装の方がはるかに優れています。なぜ、サポートとコミュニティによる仕様やアクティブなプロジェクトを回避するのでしょうか。

この批評についてグーグルAPIクライアントJavaライブラリの開発者に謝罪します、しかし私はグーグルAPIが本当に好きです、しかしこのクライアントの最初のバージョンで働くことは本当に苦い経験でした、現在のリリースは素晴らしいです。しかし、実際には多くの時間が無駄になりました。これは主に、ホイールの再発明と、バージョン0からgdata-java-clientを介したgoogle-api-client-javaへの極端なリリース間変更が原因です。

最後に、グーグルは人々がそれに時間とお金の両方を投資した後にAPIを制限します、それでなぜ気にするのですか?:-)

私が言ったことを取り戻します。それ以来、ソフトウェアとプロトコルは大幅に変更されました... GDataがJSONもサポートしている場合、それを使用することすら意味がありません。

4

1 に答える 1

2

私も同じ問題を抱えていました。あなたはgoogle-feedserverプロジェクトからインスピレーションを得ることができます。古いgdataバージョンのgoogleクライアントライブラリを使用しますが、プロジェクトはそれとApacheAbderaの組み合わせを扱います。彼らはibatisを介してデータベースの永続化を行っています。

しかし、私がしたこと:ライブラリの開発が進み、新しい機能が追加されることを期待して、GoogleAPIクライアントライブラリを使用してクライアントアプリを学習して実装するのに2日間を費やしました。しかし残念ながら、それは長い間ほとんど同じです。そこで、最近Abderaクライアントを使用org.apache.abdera.examples.extension.*し、google data apiの拡張機能をいくつか作成し、Abderaを完全に使用しました。あなたがそれについて考えるならば、グーグルAPIクライアントライブラリを使用する必要はありません。承認ヘッダーを設定するだけです

clientLogin.authenticate().setAuthorizationHeader(Util.getTransport());

グーグルがアブデラフレームワークを使用しない理由について、私は自分自身に同じ質問をしています。これはJavaの世界の問題の1つです。多くの場所で無駄にします。Abderaフレームワークは本当に素晴らしいプロジェクトであり、Googleに敬意を表して、独自のクライアントライブラリを作成することにした場合は、より強力にする必要があります。(私の意見です)簡単に言えば、Abderaフレームワークがひどいものだったとしたら、私はそれを理解するでしょうが、それは非常によくできていて、非常に機能が豊富です。

一方、Abderaフレームワークが持つ機能は、プロジェクトの性質上存在します。これは主にatompubサーバーであるため、クライアントから提供されたデータを処理することになっています。しかし、グーグルクライアントライブラリは可能性を提供していませんが、グーグルAPIクライアントも処理を必要とします。

于 2011-03-15T16:38:06.087 に答える