Почему клиентская библиотека Google API не построена в верхней части фреймворка Apache's Abdera?

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

Вопрос

Прежде всего, я хочу поблагодарить инженеров Google Gdata API за их хорошую работу, и я хотел бы упомянуть, что этот вопрос не предназначен для того, чтобы что -либо критиковать. Это просто указывает на вещи.

Кто -нибудь может объяснить мне это? Насколько я вижу, разработчики клиентской библиотеки Java Google API переосмысляют колесо. Это похоже на написание нового JDK для проекта Java, потому что Abdera Client делает то, что делает клиентская библиотека Google API, а также функции и адаптеры сервера Abdera можно также использовать для многих вещей, таких как устойчивость в записи и многие другие.

Я знаю, что протокол данных Google - это немного конкретная публикация Atom, но если нужно использовать некоторые из причудливых расширений и функций, которые предлагает Apache Abdera Project для этого протокола, лучше не использовать клиентские библиотеки Google API И реализовать клиента с нуля с Abdera ... и я уверен, что во многих случаях его функции, такие как адаптер JCR от Abdera, станут очень удобными для Google Docs, инструментария Google Transtor и практически для большинства других.

Теперь здорово, что есть клиентская библиотека Google API, которая будет использоваться для документов Google, но что я собираюсь делать с документами и ответами на корма атома? Я считаю, что в более чем половине случаев есть также репозиторий или база данных на другой стороне. И в этом случае необходима Abdera, а не простые клиенты Google API, которые только маршалируют/не поднимают ленты ...

На самом деле, во всех API Google есть что сохранить. Это будет иметь смысл, если бы Google решил инвестировать усилия в улучшение или интеграцию Abdera ... это не ... особенно учитывая очень известный факт в разработке программного обеспечения, этот второй релиз обычно переписывается с нуля. Apache Abdera - это зрелый проект с 5 -летним его существованием, используемый тоннами приложений.

Если есть причины, что я не вижу и внедряю клиента с использованием анализатора, который только был необходим, я бы, по крайней мере, использовал анализатор притяжения XML, который не устарел. Xmlpull.org 6 лет, но неактивен, и он даже не внедряет API Stax. Справочная реализация stax.codehaus.org, реализация Stax по умолчанию JRE, реализация Apache Axiom и в основном внедрение Woodstox.codehaus.org была бы намного лучше, зачем избежать спецификаций и активных проектов с поддержкой и сообществом?

Мои извинения за разработчиков клиента Google API -клиента Java Library за эту критику, но мне очень нравятся API Google, но работа с первой версией этого клиента была действительно горьким опытом, текущий релиз хорош. Но много времени было потрачено впустую в основном из-за переосмысления колеса и тех, кто экстремальные межразмерные изменения от версии 0 через gdata-java-client в Google-Api-Client-Java.

Наконец, Google делает API ограниченными после того, как люди инвестируют в это время и деньги, так почему же заботится, верно? :-)

Я возвращаю то, что сказал, с тех пор много изменилось программное обеспечение и протокол ... теперь, когда GDATA поддерживает JSON, даже не имеет смысла использовать его!

Это было полезно?

Решение

У меня такая же проблема. Вы можете получить вдохновение от Google-Feedserver проект. Он использует старую версию GDATA клиентской библиотеки Google, но проект имеет дело с его сочетанием с Apache Abdera. Они выполняют постоянство базы данных через ибатис.

Однако то, что я сделал: я провел 2 дня, изучая и внедряя свое клиентское приложение в клиентской библиотеке Google API, надеясь, что разработка библиотеки будет продолжаться и будут добавлены новые функции. Но, к сожалению, это почти то же самое в течение долгого времени. Итак, я недавно использовал Abdera Client и создал несколько расширений org.apache.abdera.examples.extension.* Для Google Data API и я использовали Abdera полностью. Если вы думаете об этом, нет необходимости использовать клиентскую библиотеку Google API. Вам просто нужно настроить заголовок авторизации

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

Что касается того, почему Google не использует Abdera Framework, я задаю себе тот же вопрос. Это одна из проблем мира Java. Отходы во многих местах. Abdera Framework - это действительно хороший проект, и при всем уважении к Google, если они решили создать собственную клиентскую библиотеку, они должны сделать это более мощным. (Это мое мнение) Проще говоря, если бы Abdera Framework была дерьмовой, я бы его понял, но это очень хорошо сделано и очень богато.

С другой стороны, функции, которые обладают структурой Abdera, существуют из -за характера проекта. В основном это сервер Atompub, так что он должен обрабатывать данные, предоставленные клиентами. Но клиентам Google API также требуется обработка, хотя библиотека Google Client не предлагает этой возможности.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top