Сервисная структура RESTFul для AppEngine - PullRequest
26 голосов
/ 26 февраля 2012

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

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

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

Ответы [ 5 ]

36 голосов
/ 27 июля 2012

Возможно, вы захотите использовать Конечные точки Google Cloud , который был объявлен в качестве надежного тестировщика для App Engine в Google I / O и теперь доступен для всех. С помощью конечных точек вы аннотируете простые классы и методы 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, таких как Проводник API и Консоль API
  • Автоматически сгенерированные клиентские библиотеки со статической типизацией для Android и iOS - в этих библиотеках используются одни и те же библиотеки Java и Objective-C , созданные Google. вы будете использовать для доступа к другим предоставляемым Google API, таким как Calendar API
  • Клиентская библиотека JS с динамическим типом - опять же, та же библиотека, которую вы используете для доступа к другим API, предоставленным Google, в JS
  • Встроенная поддержка OAuth 2
  • Интеграция с плагином Google для Eclipse - это позволяет автоматически создавать API на основе модели или приложение App Engine для поддержки существующего приложения Android
  • Поддержка локальной разработки - вы можете создавать и тестировать свой API, используя среду разработки App Engine, так же как и другие функции App Engine

Узнать больше

Ознакомьтесь с документацией для получения более подробной информации об использовании конечных точек.

Вы также можете посмотреть несколько выступлений из Google I / O:

2 голосов
/ 12 марта 2012

Я пользуюсь весенними отдыхающими сервисами, и мне очень повезло с GAE, и я использую их с клиентами Android Native, Phonegap и IOS без каких-либо проблем.

http://blog.springsource.org/2009/03/08/rest-in-spring-3-mvc/

2 голосов
/ 12 марта 2012

Я уважаю ваше решение не использовать Restlet, но для других браузеров этой темы я смог заставить Post работать с Android / Restlet / GAE - и мои знания и навыки программирования довольно ограничены.У меня были некоторые проблемы с корректной работой Restlet Edition для Javascript (он все еще находится на ранней стадии разработки), но у Restlet для Android не возникло проблем, которые я могу вспомнить.

1 голос
/ 13 марта 2012

Я также хотел бы порекомендовать 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

0 голосов
/ 11 марта 2012

Если вы смотрите на GAE, вы можете выбрать один из вариантов: duyproject . Он известен своей библиотекой openid, но также имеет очень легкую библиотеку для сервлетов REST. А с GAE вы хотите, чтобы все библиотеки были легкими, чтобы не превышать ограничение в байтах.

...