Почему клиентская библиотека google api не построена на основе Apache Abdera Framework?

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

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

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

Теперь замечательно, что есть клиентская библиотека google api, которая будет использоваться для документов Google, но что я собираюсь делать с документами и ответами на атомную ленту? Я считаю, что в более чем половине случаев с другой стороны также есть хранилище или база данных. И в этом случае нужна 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-клиента за эту критику, но мне очень нравится google apis, но работа с первой версией этого клиента была по-настоящему горькой, но нынешний выпуск хорош. Но на самом деле много времени было потрачено впустую, в основном из-за переизобретения колеса и этих крайних изменений между выпусками с версии 0 через gdata-java-client на google-api-client-java.

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

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

1 ответ

Решение

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

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

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

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

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

Другие вопросы по тегам