¿Por qué no se construye la biblioteca de clientes de Google API sobre el marco Abdera de Apache?

StackOverflow https://stackoverflow.com/questions/5313806

Pregunta

En primer lugar, quiero dar muchas gracias a los ingenieros de Google GData API por su buen trabajo y me gustaría mencionar que esta pregunta no está destinada a criticar nada. Solo señala las cosas.

¿Alguien podría explicarme eso? Por lo que puedo ver, los desarrolladores de la biblioteca de clientes de Google API de Java están reinventando la rueda. Es como escribir un nuevo JDK para un proyecto Java, porque Abdera Client hace lo que hace Google API Client Library y las características y adaptadores del servidor de Abdera también podrían usarse para muchas cosas, como la persistencia de entrada y muchos otros.

Soy consciente del hecho de que Google Data Protocolo es un poco de publicación específica de Atom, pero si uno necesita usar algunas de las extensiones y características de elegante que ofrece el proyecto Apache Abdera para este protocolo, es mejor no usar la biblioteca de clientes de Google API Biblioteca E implementa al cliente desde cero con Abdera ... y estoy seguro de que en muchos casos sus características, como el adaptador JCR de Abdera, se volverían muy útiles para Google Docs, Google Translator Toolkit y prácticamente para la mayoría de los demás.

Ahora es genial que haya una biblioteca de clientes de Google API que se use para Google Docs, pero ¿qué voy a hacer con los documentos y las respuestas de los alimentos de Atom? Creo que en más de media casos también hay un repositorio o una base de datos en el otro lado. Y en ese caso, se necesita Abdera, no los simples clientes de Google API que solo están organizando/desaprobando los alimentos ...

De hecho, hay algo que persistir en todas las API de Google. Tendría sentido, si Google decidiera invertir el esfuerzo en la mejora o integración de Abdera ... esto no ... especialmente teniendo en cuenta un hecho muy conocido en el desarrollo de software, esa segunda versión generalmente se reescribe desde cero. Apache Abdera es un proyecto maduro con 5 años de su existencia, utilizado por toneladas de aplicaciones.

Si hay razones, que no veo e implementando el cliente con el uso de Pull Parser solo era realmente necesario, al menos usaría un analizador XML Pull que no esté en desuso. Xmlpull.org tiene 6 años, pero inactivo y ni siquiera implementa la API de Stax. Stax.codehaus.org Implementación de referencia, implementación de stax predeterminada, implementación de Axiom de Apache y principalmente Woodstox.codehaus.org La implementación sería mucho mejor, ¿por qué evitar especificaciones y proyectos activos con apoyo y comunidad?

Mis disculpas a los desarrolladores de la Biblioteca Java del cliente de Google API por esta crítica, pero realmente me gustan las API de Google, pero trabajar con la primera versión de este cliente fue una experiencia realmente amarga, el lanzamiento actual es bueno. Pero se desperdició mucho tiempo en realidad principalmente debido a la reinvención de la rueda y esos cambios extremos de interrupción de la versión 0 a través de Gdata-Java-Client a Google-API-CLIENT-JAVA.

Finalmente, Google hace que las API se restringieran después de que las personas invierten tiempo y dinero en ello, entonces, ¿por qué preocuparse, ¿verdad? :-)

Estoy recuperando lo que dije, el software y el protocolo cambiaron mucho desde entonces ... ahora, ¡ahora, cuando GDATA admite JSON también, ni siquiera tendría sentido usarlo!

¿Fue útil?

Solución

Yo tuve el mismo problema. Puedes inspirarte de Google-FeedServer proyecto. Utiliza la antigua versión GData de Google Client Library, pero el proyecto trata con la combinación de TI con Apache Abdera. Están haciendo persistencia en la base de datos a través de Ibatis.

Sin embargo, lo que hice: pasé 2 días aprendiendo e implementando mi aplicación de cliente con Google API Client Library con la esperanza de que continúe el desarrollo de la biblioteca y se agregarán nuevas características. Pero desafortunadamente es más o menos lo mismo durante mucho tiempo. Así que recientemente usé el cliente Abdera y creé algunas extensiones org.apache.abdera.examples.extension.* Para Google Data API y yo utilicé por completo Abdera. Si lo piensa, no es necesario usar la biblioteca de clientes de Google API. Solo necesitas configurar el encabezado de autorización

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

En cuanto a por qué Google no usa el marco Abdera, me estoy haciendo la misma pregunta. Es uno de los problemas del mundo de Java. Desperdicio en muchos lugares. Abdera Framework es un proyecto realmente agradable y con el debido respeto a Google, si decidieron crear su propia biblioteca de clientes, deberían hacerlo más potente. (es mi opinión) En pocas palabras, si el marco de Abdera fuera horrible, lo conseguiría, pero está muy bien hecho y muy rico en características.

Por otro lado, las características que tienen el marco de Abdera existen debido a la naturaleza del proyecto. Es principalmente un servidor Atompub, por lo que se supone que maneja los datos suministrados por los clientes. Pero los clientes de Google API también requieren un manejo, aunque Google Client Library no ofrece la posibilidad.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top