Почему клиентская библиотека google api не построена на основе Apache Abdera Framework? - PullRequest
5 голосов
/ 15 марта 2011

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

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

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

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

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

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

Я приношу свои извинения разработчикам java-библиотеки google api-клиента за эту критику, но мне очень нравится gis apis, но работа с первой версией этого клиента была по-настоящему горькой, но текущая версия хороша. Но много времени было потрачено впустую, в основном из-за переизобретения колеса и тех крайних изменений между выпусками, начиная с версии 0 через gdata-java-client и заканчивая google-api-client-java.

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

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

1 Ответ

2 голосов
/ 15 марта 2011

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

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

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

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

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

...