Подтвердить что ты не робот

RESTFul Service Framework для AppEngine

Я работаю над проектом, который включает мобильных и веб-клиентов с Google AppEngine PAAS. Я хотел бы использовать веб-службы RESTFul с моим приложением AppEngine.

Я просмотрел Stackoverflow для ссылок на рамочные сервисы RESTFul, которые можно использовать с AppEngine для веб-клиентов (GWT) и мобильных (Android) клиентов. Хотя Restlet, кажется, предоставляет выпуски для AppEngine, GWT и Android, до сих пор я дошел до RestEasy в основном из-за этого question.

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

4b9b3361

Ответ 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 вы хотите, чтобы все библиотеки были светлыми, поэтому вы не переходите через ограничение байта.