Приложение RESTful на Google App Engine Java?

83

Я хочу создать приложение RESTful на Google App Engine. Я хотел бы предоставить услуги XML и JSON. Я коротко поэкспериментировал с Restlet, Resteasy и Jersey. У меня не было большого успеха ни с одним из них, кроме нескольких простых примеров в Restlet.

Не могли бы вы поделиться своим опытом создания веб-приложения Restful на Google App Engine с использованием Java или поделиться информацией о вышеупомянутых наборах инструментов в GAE?

Благодаря!

Изменить (2009-07-25):

Я решил пока использовать Restlet. Вроде пока работает безупречно. Пожалуйста, публикуйте любые другие идеи / мнения, которые могут у вас возникнуть. С какими проблемами вы столкнулись? Вы успешно использовали Jersey / Restlet / Resteasy на GAE / J? Если так, мы хотим об этом услышать!

JP Ричардсон
источник
technicalrex.com/2014/08/11/... и javacodegeeks.com/2012/05/... является лучшим turorial об интеграции Джерси GAE.
Md. Sajedul Karim
Это вопрос выбора фреймворка, к которому мы привыкли в нашей разработке, я использовал Spring MVC с objectify, а также Hibernate, и он также безупречно работает на Google App Engine.
Ankur Jain
@AnkurJain да, за 7 лет многое изменилось.
JP Richardson

Ответы:

45

Я рад сообщить, что Restlet M3 БЕЗУПРЕЧНО работает на AppEngine 1.2.2. Я следил за руководствами «Первые шаги» и «Первый ресурс», найденными http://restlet.com/technical-resources/restlet-framework/guide .

Итак, мне кажется, что Restlet - это ответ для ваших приложений GAE / J Restful.

JP Ричардсон
источник
4
Ссылка выше теперь не работает. Соответствующая ссылка GAE для Restlet 2.2: restlet.org/learn/guide/2.2/editions/gae
Джордж Хокинс,
17

Я использую Джерси на GAE. Вот ссылка для тех, кто заинтересован в его настройке: (я использую GAE SDK v1.4.0):

http://tugdualgrall.blogspot.com/2010/02/create-and-deploy-jax-rs-rest-service.html

Вирен
источник
2
Ссылка выше относится к Джерси 1.1.5. Команда GAE ведет заметки об этой и более поздних версиях здесь - code.google.com/p/googleappengine/wiki/WillItPlayInJava#Jersey
Джордж Хокинс,
6

Я собираюсь начать изучать и это, но еще не начал. Я нашел этот фреймворк, в котором говорится, что он должен работать, но, как я уже сказал, еще не пробовал.

http://wiki.restlet.org/docs_1.2/13-restlet/275-restlet/252-restlet.html

Если у вас все получится или вам удастся заставить работать одно из вышеперечисленных предложений, обновите всех, поскольку я уверен, что в этом есть интерес.

Broschb
источник
1
Я почти уверен, что Рестлет сработает. Это просто немного неприятнее в использовании, чем другие. Мне особенно нравятся аннотации, представленные Джерси. Я планирую использовать Restlet в ближайшие пару недель. Обязательно опубликую обновление.
JP Richardson
Я провел выходные, играя с этим, и Рестлет отлично работает с GAE. Я смог собрать что-то, следуя примеру, приведенному на сайте Restlet по URL-адресу, который я оставил ранее, но теперь не работает. Но настроить все было тривиально.
broschb
Я написал небольшой пост в своем блоге, чтобы ответить на другой вопрос о stackoverflow. Здесь проходит очень простой пример перезапуска GAE. broschb.blogspot.com/2009/08/…
broschb 08
1
У Restlet теперь есть реализация JAX-RS. Они также начали распространять сборки специально для использования в AppEngine. Вы захотите использовать последнюю веху 2,0 (в настоящее время 2,0 м4). Я только что установил это как доказательство концепции для нового приложения, которое сейчас создается. Я бы не рекомендовал использовать собственный API Рестлета, поскольку он в корне универсален, излишне абстрагирован и просто сбивает с толку. restlet.org/downloads/2.0/restlet-gae-2.0m4.zip
Марк Ренуф
3

Поскольку эти доблестные старые решения были исправлены вместе, Google, по-видимому, предоставил плагин Eclipse для создания начального проекта, который создает приложение App Engine, Android APK и веб-приложение, которые общаются друг с другом через интерфейс, определенный одним набором. объявлений аннотированных объектов.

Я еще не пробовал это сделать, но взгляните, прежде чем пробовать любой из более разнородных примеров, описанных в предыдущих сообщениях выше:

https://developers.google.com/eclipse/docs/appengine_connected_android

Это видео Google также довольно информативно:

http://www.youtube.com/watch?v=NU_wNR_UUn4

Карл
источник
2

Как бы то ни было, в списках пользователей Джерси было довольно много дискуссий о том, как заставить Джерси работать над GAE. Это немного утомительная работа из-за ограничений GAE (отсутствующие классы в белых списках - надеюсь, со временем разрешится), но, очевидно, ее можно заставить работать. Так что, хотя это и не является тривиально простым, это может быть вашим лучшим выбором; особенно поскольку многие из возникающих проблем одинаковы для всех фреймворков (навязанных GAE).

StaxMan
источник
Я хотел бы спросить вас, есть ли у вас какое-либо решение моего вопроса здесь stackoverflow.com/questions/32699420/… спасибо
Марко Динацоли
2

Что ж, я бы очень посоветовал вам взглянуть на игровой фреймворк.

Посмотрите видео на главной странице

Имеет модуль gae

С сиеной в качестве орма для обработки хранилища данных gae

Из всех java-фреймворков, которые я видел до сих пор, я думаю, что у него более легкая кривая обучения,

  • отличная документация ,

  • учебник для разработки полного приложения

  • очень активное и отзывчивое сообщество,

  • бесплатно как в пиве, а также как в речи

  • высокая масштабируемость благодаря нестандартному дизайну без сохранения состояния

  • отдыхать дружелюбно

  • широкие возможности настройки с помощью модулей и плагинов

более того, учитывая, что это курс колледжа, очень легко взломать код, я мог бы справиться с парой билетов и новыми функциями без какого-либо опыта работы с java, всего пара лет разработки веб-приложений с php

другие преимущества

  • это действительно легко начать, не требует сложной настройки, просто скачайте и распакуйте файл, и все готово

  • отличный опыт разработки, просто исправьте код и нажмите «Обновить», проигрывайте автокомпилированные изменения на лету при работе в режиме разработки

  • быстрый и легкий

  • fullstack, вам не нужно интегрировать громоздкие фреймворки, чтобы он работал

  • отличный отчет об ошибках, больше нет бесконечной трассировки стека ошибок, просто показывает строку с ошибкой

  • нет конфигурации xml где-либо вокруг

  • отличная поддержка tdd с интегрированным тестом селена

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

открывается как
источник
Игра выглядит очень эффектно. Однако его интеграция с GAE не выглядит так, как будто она поддерживается в основном проекте, и поэтому отстает от цикла выпуска GAE. Его плагин GWT, кажется, отстает еще больше. Тем не менее, я дам вам голос за то, что вы показали мне такой классный проект.
JP Richardson
модуль gae был разработан и поддерживается основным разработчиком, модуль siena (рекомендуется orm для gae, jpa имеет много проблем) поддерживается очень активным членом сообщества, к сожалению, модулю gwt не уделяется так много внимания в дело ...
открывается
Модуль gae снова на ходу! другой разработчик взял на себя ответственность за это, вот поддержка fot gae
открывается
2

Недавно я собрал шаблон проекта с Jersey, Guice и AppEngine на GitHub. Он был разработан с помощью SimpleDS, но его можно легко изменить для работы с Objectify / JDO. Проект находится здесь .

Это должно стать хорошей отправной точкой для новых проектов.

Начо Колома
источник
1

Вот очень хороший учебник Restlet / Android / GAE / Objectify с примером простого приложения. Извините, он на французском, но вы можете просто скопировать / вставить код или использовать перевод Google.

Я следил за ним, и за 2 часа у меня был рабочий сервер Android / GAE, который общался вместе. Это хорошая основа для запуска или тестирования Restlet.

http://www.tutos-android.com/webservice-rest-android-appengine-restlet-objectify

Удачи

Tyvain
источник
-1

Два наиболее громоздких действия GAE REST API, требующих работы, будь то Java или .py, - это графика и способ не отображать личную информацию. Мой маленький корм gae rest развил еще один проект. Я уверен, что Java преуспевает там, где python застрял из-за Java, и дает больше способов (преимуществ), а также более длительное (более медленное) время для успеха (недостаток), в то время как проекты python открывают меньше способов добиться успеха (невыгодно) и меньше времени на разработку ( выгодное быстрое развитие), чтобы добиться того же.

Никлас Р.
источник