RESTFul Service Framework для AppEngine
Я работаю над проектом, который включает мобильных и веб-клиентов с Google AppEngine PAAS. Я хотел бы использовать веб-службы RESTFul с моим приложением AppEngine.
Я просмотрел Stackoverflow для ссылок на рамочные сервисы RESTFul, которые можно использовать с AppEngine для веб-клиентов (GWT) и мобильных (Android) клиентов. Хотя Restlet
, кажется, предоставляет выпуски для AppEngine, GWT и Android, до сих пор я дошел до RestEasy
в основном из-за этого question.
Ранее возникали вопросы о том, что обсуждают рамки RESTFul, но я не думаю, что сравнения хорошо подходят к этому, теперь довольно обыденному случаю. Было бы полезно услышать мнения опытных разработчиков о платформах, доступных для этого набора платформ и преимуществ по сравнению с недостатками каждого из них.
Ответы
Ответ 1
Возможно, вы захотите использовать Облачные конечные точки Google, которая была объявлена как функция доверенного тестера для App Engine в Google I/O и теперь доступен для всех. С помощью Endpoints вы комментируете простые классы и методы Java (или Python) для описания вашего API. Например, это простой класс, чтобы получить и получить список высоких результатов в игре Tic Tac Toe:
@Api(name = "tictactoe")
public class ScoreEndpoint {
@ApiMethod(name = "scores.get")
public Score get(@Named("id") String id) {
PersistenceManager pm = getPersistenceManager();
Score score = pm.getObjectById(Score.class, id);
pm.close();
return score;
}
@ApiMethod(name = "scores.list")
public List<Score> list() {
PersistenceManager pm = getPersistenceManager();
Query query = pm.newQuery(Score.class);
return (List<Score>) pm.newQuery(query).execute();
}
}
Функции
- Поддержка времени выполнения Java и Python
- Встроенный в инфраструктуру API Google - он работает со многими из тех же инструментов и библиотек, которые используются для собственных API Google, например APIs Explorer и APIs Console
- Автоматически создаваемые, статически типизированные клиентские библиотеки для Android и iOS - эти библиотеки используют тот же самый авторский Java и Objective-C, которые вы использовали бы для доступа к другим API-интерфейсам Google, таким как API календаря
- Динамически типизированная клиентская библиотека JS - опять же, те же библиотеки, которые вы используете для доступа к другим API-интерфейсам Google в JS
- Встроенная поддержка OAuth 2
- Интеграция с плагином Google для Eclipse - это позволяет автоматически создавать API на основе модели или приложение App Engine для поддержки существующего приложения для Android.
- Поддержка локальной разработки. Вы можете создавать и тестировать свой API с помощью среды разработки App Engine, как и с другими функциями App Engine.
Подробнее
Подробнее об использовании конечных точек см. .
Вы также можете посмотреть несколько сообщений из Google I/O:
Ответ 2
Я использую службы поддержки spring с большим количеством удачи в GAE и потребляю их с клиентами Android Native, Phonegap и IOS без каких-либо проблем.
http://blog.springsource.org/2009/03/08/rest-in-spring-3-mvc/
Ответ 3
Я уважаю ваше решение не использовать Restlet, но для других браузеров этой темы я смог сделать Post работу с Android/Restlet/GAE - и мои знания и навыки программирования довольно ограничены. У меня были некоторые проблемы с тем, чтобы версия Restlet Edition для Javascript работала правильно (она все еще находится в раннем развитии), но у Restlet for Android не было никаких проблем, о которых я могу вспомнить.
Ответ 4
Я также хотел бы рекомендовать Restlet, см. также другие темы здесь
У Restlet есть версия для GAE, см. http://wiki.restlet.org/docs_2.0/13-restlet/275-restlet/252-restlet.html
Но есть и другие библиотеки, которые поставляются со специальными изданиями для GAE, например:
http://code.google.com/p/xydra/wiki/RestLess
Ответ 5
Если вы смотрите на GAE, один из вариантов, который вы можете рассмотреть, duyproject. Он известен своей openid-библиотекой, но также имеет очень легкую библиотеку для сервлетов REST. И с помощью GAE вы хотите, чтобы все библиотеки были светлыми, поэтому вы не переходите через ограничение байта.