为什么不在Apache的Abdera框架之上构建google api客户端库?

时间:2011-03-15 15:15:06

标签: java google-data-api atompub apache-abdera

首先,我要感谢Google GData API工程师的出色工作,我想提一下,这个问题并不是要批评任何事情。它只是指出了事情。

有人可以向我解释一下吗?据我所知,java的谷歌api客户端库的开发人员正在重新发明轮子。这就像为Java项目编写一个新的JDK,因为abdera客户端执行google api客户端库所做的事情,abdera服务器功能和适配器也可用于许多事情,例如入口持久性和许多其他事情。

我知道谷歌数据协议是一个特定的原子发布,但如果需要使用Apache Abdera项目为此协议提供的一些花哨的扩展和功能,最好不要使用谷歌api客户端库并从头开始使用Abdera实现客户端...而且我敢肯定,在很多情况下,其功能如Abdera的JCR适配器将变得非常方便谷歌文档,谷歌翻译工具包和几乎其他大多数其他人

现在很高兴有一个谷歌api客户端库用于谷歌文档,但我将如何处理文档和原子Feed响应?我相信在一半以上的案例中,另一方面也有一个存储库或数据库。在这种情况下,需要abdera,而不是简单的google api客户端,只是编组/解组订阅源...

事实上,所有谷歌API都有一些东西要坚持下去。如果google决定将努力投入到Abdera增强或集成中,那将是有道理的......这不是......特别是考虑到软件开发中一个众所周知的事实,第二个版本通常是从头开始重写。 Apache Abdera是一个成熟的项目,有5年的存在,被大量的应用程序使用。

如果有原因,我没有看到并实现使用pull解析器的客户端只是非常必要,我至少会使用一个不被弃用的xml pull解析器。 Xmlpull.org已有6年历史,但尚未启用,甚至没有实现StAX api。 stax.codehaus.org参考实现,JRE默认stax实现,Apache Axiom实现和主要woodstox.codehaus.org实现会更好,为什么要避免规范和活动项目的支持和社区?

我向google api客户端java库的开发人员致歉,但我真的很喜欢google apis,但是使用这个客户端的第一个版本真的很痛苦,目前的版本很不错。但实际上浪费了很多时间主要是因为重新发明轮子以及从版本0到gdata-java-client到google-api-client-java的那些极端的版本间更改。

最后,谷歌在人们投入时间和金钱后限制API,所以为什么要关心,对吧? : - )

我正在收回我所说的内容,从那时起软件和协议发生了很大变化......现在,当GData支持JSON时,使用它甚至没有意义! < / p>

1 个答案:

答案 0 :(得分:2)

我遇到了同样的问题。您可以从google-feedserver项目中获取灵感。它使用旧的gdata版本的谷歌客户端库,但该项目处理它与Apache Abdera的组合。他们正在通过ibatis进行数据库持久化。

然而,我做了什么:我花了两天时间学习和实施我的客户端应用程序与谷歌api客户端库希望库的开发将继续,并将添加新的功能。但不幸的是,很长一段时间它几乎一样。所以我最近使用了Abdera客户端,并为google data api创建了一些扩展org.apache.abdera.examples.extension.*,我完全使用了Abdera。如果你考虑一下,就不需要使用google api客户端库了。您只需要设置授权标题

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

至于谷歌为什么不使用Abdera框架,我问自己同样的问题。这是Java世界的问题之一。浪费在很多地方。 Abdera框架是一个非常好的项目,并且对Google充满敬意,如果他们决定创建自己的客户端库,他们应该做得更强大。 (这是我的意见)简单地说,如果Abdera框架很糟糕,我会得到它,但它做得很好而且非常丰富。

另一方面,由于项目的性质,存在Abdera框架所具有的功能。它主要是一个atompub服务器,因此它应该处理客户端提供的数据。但谷歌API客户端也需要处理,但谷歌客户端库不提供这种可能性。