Правильный клиент REST для Android [закрыт]

Я создал собственную клиентскую библиотеку REST для приложения Android, но после просмотра Презентация Google I/O на эту тему. Я понял, что все неправильно (именно то, что они показывают на слайде 9).

Теперь я хочу сделать это снова правильно, но мне интересно, нет ли библиотеки, которая могла бы избавить меня от проблем. Мы используем Jersey на стороне сервера.

Я рассматривал разные решения: CRest и Resty, но я хотел бы найти решение для Android, чтобы мне не приходилось самому реализовывать материал ContentProvider, и android-jbridge, но он не выглядит очень активным.

На данный момент я рассматриваю возможность использования RestTemplate (из Spring Android) и сам пишу материал вокруг него, но это займет некоторое время.

Любая лучшая альтернатива?


person MasterScrat    schedule 03.08.2011    source источник
comment
Недавно я попытался запустить клиент Джерси на платформе Android без каких-либо серьезных проблем (на самом деле он работал нормально из коробки). Итак... почему вы не используете то, что уже доступно?   -  person Pavel Bucek    schedule 21.09.2011
comment
Павел - Я (и многие другие) получаю NPE в javax.ws.rs.core.MediaType.valueOf(MediaType.java:119) - какую версию трикотажа вы использовали? Не могли бы вы прокомментировать/ответить на этот вопрос: stackoverflow.com/questions/5444726/ Джерси-клиент-api-проблема   -  person Kevin    schedule 14.10.2011
comment
Привет, Павел, у меня точно такая же проблема, как описал Кевин выше - не могли бы вы помочь нам обойти ее?   -  person necromancer    schedule 21.12.2011
comment
Мне бы очень хотелось узнать, что сделал Павел, чтобы это заработало, потому что я тоже пытался. На самом деле должно быть возможно с небольшим взломом mix&match, чтобы получить правильно работающую библиотеку. Есть желающие потратить несколько часов?   -  person Brill Pappin    schedule 17.01.2012


Ответы (2)


«Разработка клиентских приложений REST для Android» Вирджила Добьянски вызвала бурную дискуссию, поскольку исходный код не был представлен ни во время сессии, ни после нее.

Единственная эталонная реализация, которую я знаю (пожалуйста, прокомментируйте, если вы знаете больше), доступна на Datadroid (упоминается сеанс Google IO в разделе /презентация). Это библиотека, которую вы можете использовать в своем приложении.

Обновление
Доступны и другие библиотеки. Я не знаю, как они подтверждают шаблоны Добьянщи, но я хотел бы перечислить их для вашей справки (текст взят с домашней страницы библиотеки):

  • RoboSpice — это модульная библиотека для Android, упрощающая написание асинхронных длительных задач. Он специализируется на сетевых запросах, поддерживает кэширование и предлагает готовые REST-запросы с использованием модулей расширения.

  • RESTDroid (в настоящее время альфа-версия) предоставляет способ обработки вызовов веб-служб REST. Он содержит только основную логику для обработки этих запросов, возможно расширение с помощью модулей (некоторые из них предоставляются).

person ChrLipp    schedule 01.01.2012
comment
Идеально. Источник здесь: github.com/foxykeep/datadroid - person MasterScrat; 17.02.2012
comment
Насколько я могу судить, Datadroid не совсем использует шаблон Добьянски. То есть вместо ContentProvider методов, запускающих сетевые операции за кулисами, вы сами явно запускаете сетевую операцию и ждете результата от сети. База данных SQLite на самом деле не нужна для работы примера приложения. (В этом я могу ошибаться, код безумно сложен для такой простой задачи.) - person Timmmm; 17.09.2012
comment
Для информации, версия 2 DataDroid была выпущена во время рождественских каникул. Это упрощает код, который вам нужно написать, и добавляет дополнительные функции для управления веб-сервисами. @Timmmm: DataDroid использует шаблон A из презентации Добьянчи. тот, о котором вы говорите, это образец B :) - person Foxykeep; 10.01.2013
comment
Это может быть очень полезно для людей, изучающих реализацию клиента Android REST. Презентация Добьянски в формате PDF: drive.google.com/file/d /0B2dn_3573C3RdlVpU2JBWXdSb3c/ - person Kay Zed; 27.12.2013

Еще одна замечательная библиотека, похожая на RoboSpice, — это Mechanoid Ops. Он следует шаблону, представленному / описанному Вирджилом на IO 2010. Mechanoid также предоставляет дополнительные функции, которые могут пригодиться, такие как управление базой данных SQLite.

подробнее см. здесь http://robotoworks.com/mechanoid/doc/index.html

person Joakim    schedule 24.04.2013