google app engine - standard - Marco de servicio RESTFul para App Engine
google app engine tutorial español (5)
Estoy trabajando en un proyecto que involucra a clientes móviles y web con AppEngine PAAS de Google. Me gustaría usar los servicios web RESTFul con mi aplicación App Engine.
He revisado Stackoverflow para encontrar referencias a los marcos de servicios RESTFul que se pueden usar con AppEngine para clientes web (GWT) y móviles (Android). Aunque Restlet
parece proporcionar ediciones para AppEngine, GWT y Android, hasta ahora lo he conseguido RestEasy
a RestEasy
principalmente debido a esta question .
Ha habido preguntas previamente que discuten los 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.
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, usted anota 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 de 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();
}
}
Caracteristicas
- Soporte para tiempos de ejecución de Java y Python
- Construido en la infraestructura API de Google : funciona con muchas de las mismas herramientas y bibliotecas que se usan para las API propias de Google, como el APIs Explorer y la consola API.
- Bibliotecas de cliente generadas automáticamente y de tipo estático para Android e iOS : estas bibliotecas están utilizando las mismas bibliotecas creadas por Google y Objective-C que usaría para acceder a otras API provistas por Google, como la API de calendario.
- Biblioteca de cliente JS de tipo dinámico : de nuevo, la misma biblioteca que utiliza para acceder a otras API proporcionadas por Google en JS
- Soporte integrado para OAuth 2
- Integración con Google Plugin para Eclipse : esto le permite crear automáticamente una API basada en un modelo, o una aplicación de App Engine para respaldar una aplicación de Android existente
- Soporte para el desarrollo local : puede construir y probar su API utilizando el entorno de desarrollo de App Engine, al igual que con otras características de App Engine.
Aprende más
Consulte la documentación para obtener más detalles sobre el uso de Endpoints.
También puede ver varias conversaciones de Google I / O:
He estado utilizando los servicios de descanso de primavera con mucha suerte en GAE y lo he estado consumiendo con Android nativo, Phonegap y clientes de IOS sin problemas de ningún tipo.
http://blog.springsource.org/2009/03/08/rest-in-spring-3-mvc/
Respeto tu decisión de no utilizar 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 que la edición de Restlet para Javascript funcione correctamente (todavía está en desarrollo temprano), pero Restlet para Android no presentó problemas que pueda recordar.
Si está buscando GAE, una opción que puede considerar es duyproject . Se lo conoce por ser una biblioteca de código abierto, pero también tiene una biblioteca muy liviana para servlets REST. Y con GAE, quiere mantener todas las bibliotecas livianas para que no exceda el límite de bytes.
También me gustaría recomendar Restlet, ver también otros hilos aquí
- ¿Aplicación RESTful en Google App Engine Java?
- https://.com/questions/1710199/which-is-the-best-java-rest-api-restlet-or-jersey
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, por ejemplo: http://code.google.com/p/xydra/wiki/RestLess