Me gustaría crear una aplicación RESTful en Google App Engine. Me gustaría proporcionar servicios XML y JSON. He experimentado brevemente con Restlet, Resteasy y Jersey. No he tenido mucho éxito con ninguno de ellos, aparte de algunos ejemplos simples en Restlet.
¿Podría compartir sus experiencias en la creación de una aplicación web Restful en Google App Engine usando Java o proporcionar información sobre los kits de herramientas mencionados anteriormente en GAE?
¡Gracias!
Editar (2009-07-25):
He decidido utilizar Restlet por el momento. Parece funcionar perfectamente hasta ahora. Publique cualquier otra información / opinión que pueda tener. ¿Qué problemas ha encontrado? ¿Ha utilizado con éxito Jersey / Restlet / Resteasy en GAE / J? Si es así, queremos oír hablar de eso!
Respuestas:
Me complace informar que Restlet M3 funciona impecablemente en AppEngine 1.2.2. He seguido los tutoriales de "Primeros pasos" y "Primer recurso" que se encuentran en http://restlet.com/technical-resources/restlet-framework/guide .
Entonces, me parece que Restlet es la respuesta para sus aplicaciones GAE / J Restful.
fuente
Estoy usando Jersey en GAE. Aquí está el enlace para aquellos que estén interesados en configurarlo: (Estoy usando GAE SDK v1.4.0):
http://tugdualgrall.blogspot.com/2010/02/create-and-deploy-jax-rs-rest-service.html
fuente
Voy a comenzar a explorar esto también, pero aún no lo he hecho. Encontré este marco, que dice que debería funcionar, pero como dije, aún no lo he probado.
http://wiki.restlet.org/docs_1.2/13-restlet/275-restlet/252-restlet.html
Si logra que funcione, o logra que funcione una de las sugerencias anteriores, actualice a todos, ya que estoy seguro de que hay interés en esto.
fuente
Estoy usando Restlet junto con Guice en Google AppEngine. En mi humilde opinión, encajan muy bien. Consulte mi publicación de blog reciente para obtener más detalles: http://haraldpehl.blogspot.com/2009/11/google-appengine-restlet.html
fuente
Dado que estas valientes soluciones más antiguas se parchearon juntas, Google aparentemente ha proporcionado un complemento de Eclipse para crear un proyecto de inicio que produce una aplicación de App Engine, un APK de Android y una aplicación web, todos hablando entre sí a través de una interfaz definida por un solo conjunto. de declaraciones de objeto anotadas.
Todavía no he probado esto, pero eche un vistazo antes de probar cualquiera de los ejemplos más heterogéneos descritos en los mensajes anteriores anteriores:
https://developers.google.com/eclipse/docs/appengine_connected_android
Este video de Google también es bastante informativo:
http://www.youtube.com/watch?v=NU_wNR_UUn4
fuente
Por lo que vale, ha habido bastante discusión sobre las listas de usuarios de Jersey sobre cómo hacer que Jersey funcione en GAE. Es un trabajo un poco tedioso debido a las restricciones de GAE (clases que faltan en las listas blancas, con suerte se resuelven con el tiempo), pero aparentemente se puede hacer que funcione. Entonces, aunque no es trivialmente fácil, esa podría ser su mejor opción; esp. ya que muchos de los problemas enfrentados son los mismos para todos los marcos (impuestos por GAE).
fuente
Bueno, te recomiendo encarecidamente que eches un vistazo al marco de juego
Eche un vistazo al video en la página de inicio.
Tiene un módulo gae
Con siena como orm para manejar el almacén de datos de gae
De todos los frameworks de Java que he visto hasta ahora, creo que tiene la curva de aprendizaje más fácil,
gran documentación ,
un tutorial para desarrollar una aplicación completa
comunidad muy activa y servicial,
libre como en la cerveza y también como en el habla
altamente escalable debido a su diseño sin estado listo para usar
descansa amigable
altamente personalizable a través de sus módulos y enfoque de complementos
Además, teniendo en cuenta que es para un curso universitario, es muy fácil piratear el código, pude manejar un par de tickets y nuevas funciones sin ninguna experiencia en Java, solo un par de años desarrollando aplicaciones web con php
otros beneficios
es realmente fácil de comenzar, sin una configuración complicada, solo descargue y descomprima el archivo y estará listo
gran experiencia de desarrollo, simplemente corrija el código y presione actualizar, reproduzca los cambios de compilación automática sobre la marcha cuando se ejecuta en modo de desarrollo
rápido y ligero
fullstack, no tiene que integrar complicados frameworks para que funcione
gran informe de errores, no más seguimiento de pila de errores interminable, solo le muestra la línea con error
sin configuración xml en ninguna parte
gran soporte para tdd con prueba integrada de selenio
Creo que la principal ventaja como herramienta de aprendizaje es que es posible echar un vistazo al código fuente sin sentirse perdido y el apoyo de la comunidad ... La documentación es muy clara y puedes aprender mucho con solo echar un vistazo a la fuente. código...
fuente
Recientemente armé una plantilla de proyecto con Jersey, Guice y AppEngine en GitHub. Ha sido desarrollado con SimpleDS, pero se puede modificar para trabajar con Objectify / JDO fácilmente. El proyecto está vivo aquí .
Debería ser un buen punto de partida para nuevos proyectos.
fuente
Aquí hay un muy buen tutorial Restlet / Android / GAE / Objectify con un ejemplo de una aplicación simple. Lo siento, está en francés, pero puede simplemente copiar / pegar el código o usar la traducción de Google.
Lo seguí y tuve un servidor Android / GAE en funcionamiento que se comunicó en 2 horas. Es una buena base para iniciar o probar Restlet.
http://www.tutos-android.com/webservice-rest-android-appengine-restlet-objectify
Buena suerte
fuente
Las 2 acciones de la API REST de GAE más engorrosas para que funcione, ya sea Java o .py, son los gráficos y cómo no mostrar información privada. Mi pequeña alimentación de descanso de gae bifurcó otro proyecto. Estoy seguro de que Java tiene éxito donde Python se atascó debido a que Java toma y brinda más formas (ventajas), así como un tiempo más largo (más lento) para tener éxito (desventaja), mientras que los proyectos de Python abren menos formas de tener éxito (desventajoso) y menos tiempo de desarrollo ( desarrollo rápido ventajoso) para tener éxito en el mismo.
fuente