Marco de servicio RESTful para AppEngine


Estoy trabajando en un proyecto que involucra clientes móviles y web con AppEngine PAAS de Google. Me gustaría usar servicios web RESTful con mi AppEngine.

He buscado en Stackoverflow referencias a frameworks de servicios RESTful que se pueden usar con AppEngine tanto para clientes web (GWT) como móviles (Android). Aunque Restlet parece proporcionar ediciones para AppEngine, GWT y Android, hasta ahora lo he reducido a RestEasy principalmente debido a esta pregunta.

Allí han sido preguntas anteriores quediscuten marcos RESTful pero no creo que las comparaciones se apliquen bien a este caso, ahora bastante común. Sería útil escuchar las opiniones de los desarrolladores experimentados sobre los marcos disponibles para este conjunto de plataformas y los méritos frente a los deméritos de cada uno.

Author: Community, 2012-02-26

5 answers

Es posible que desee considerar el uso de Google Cloud Endpoints, que se anunció como una función de prueba de confianza para App Engine en Google I/O, y ahora está disponible para todos. Con Endpoints, puede anotar clases y métodos simples de Java (o Python) para describir su API. Por ejemplo, esta es una clase simple para obtener y recuperar una lista de puntuaciones altas de un juego 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();
  }
}

Características

  • Soporte para Java y Python tiempos de ejecución
  • Construido sobre la infraestructura de API de Google - funciona con muchas de las mismas herramientas y bibliotecas utilizadas para las propias API de Google, como el APIs Explorer y APIs Console
  • Bibliotecas cliente generadas automáticamente y de tipo estático para Android e iOS - estas bibliotecas utilizan las mismas bibliotecas creadas por Google Java y Objective-C que utilizarías para acceder a otras API proporcionadas por Google, como Calendario API
  • Biblioteca cliente JS de tipo dinámico - de nuevo, la misma biblioteca que usa para acceder a otras API proporcionadas por Google en JS
  • Soporte integrado para OAuth 2
  • Integración con el complemento de Google para Eclipse : esto le permite crear automáticamente una API basada en un modelo o una aplicación de Motor de aplicaciones para respaldar una aplicación Android existente
  • Soporte para el desarrollo local - puede crear y probar su API utilizando la Aplicación Entorno de desarrollo del motor, al igual que con otras características del Motor de aplicaciones

Más información

Consulte la documentación para obtener más detalles sobre el uso de Endpoints.

También puedes ver varias charlas de Google I / O:

 36
Author: Dan Holevoet,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-02-13 20:11:16

He estado usando servicios spring restful con mucha suerte en GAE y lo he estado consumiendo con clientes nativos de Android, Phonegap e IOS sin problemas de ningún tipo.

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

 2
Author: DavidB,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-03-11 22:22:24

Respeto tu decisión de no usar Restlet, pero para otros navegadores de este hilo, he podido hacer que Post funcione con Android/Restlet/GAE - y mis conocimientos y habilidades de programación son bastante limitados. Tuve algunos problemas para conseguir que la edición Restlet para Javascript funcione correctamente (todavía está en desarrollo temprano), pero Restlet para Android no planteó problemas que pueda recordar.

 2
Author: Richard Berger,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-03-12 05:02:51

También me gustaría recomendar Restlet, ver también otros hilos aquí

Restlet tiene una edición para GAE, ver http://wiki.restlet.org/docs_2.0/13-restlet/275-restlet/252-restlet.html

Pero también hay otras bibliotecas que vienen con ediciones especiales para GAE, para ejemplo: http://code.google.com/p/xydra/wiki/RestLess

 1
Author: ChrLipp,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:17:57

Si estás mirando GAE, una opción que puedes considerar es duyproject. Es conocido por su biblioteca openid, pero también tiene una biblioteca muy liviana para servlets REST. Y con GAE quieres mantener todas las bibliotecas ligeras para no sobrepasar el límite de bytes.

 0
Author: Deanna,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-03-11 02:09:26