¿Aplicación RESTful en Google App Engine Java?

83

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!

JP Richardson
fuente
technicalrex.com/2014/08/11/... y javacodegeeks.com/2012/05/... son la mejor turorial sobre la integración Jersey GAE.
Md. Sajedul Karim
Es una cuestión de elección del marco al que estamos acostumbrados en nuestro desarrollo, he estado usando Spring MVC con objectify y Hibernate y también funciona perfectamente en Google App Engine.
Ankur Jain
@AnkurJain sí, muchos cambios en 7 años.
JP Richardson

Respuestas:

6

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.

broschb
fuente
1
Estoy bastante seguro de que Restlet funcionará. Es un poco más desagradable de usar que los demás. Me gustan especialmente las anotaciones que introduce Jersey. Planeo usar Restlet en las próximas semanas. Me aseguraré de publicar una actualización.
JP Richardson
Pasé el fin de semana jugando con esto también, y Restlet funciona muy bien en GAE. Pude armar algo siguiendo el ejemplo dado en el sitio de Restlet en la URL que dejé anteriormente que ahora está inactiva. Pero fue trivial configurar todo.
broschb
Escribí una pequeña publicación en mi blog para responder otra pregunta sobre stackoverflow. Pasa por un ejemplo muy básico de cómo conseguir un reajuste en GAE. broschb.blogspot.com/2009/08/…
broschb
1
Restlet ahora tiene una implementación JAX-RS. También han comenzado a distribuir compilaciones específicamente para su uso en AppEngine. Querrá utilizar el último hito 2.0 (actualmente 2.0m4). Acabo de configurar esto como una prueba de concepto para una nueva aplicación que se está construyendo ahora. No recomendaría usar la propia API de Restlet, ya que es radicalmente genérica, demasiado abstracta y, en general, confusa. restlet.org/downloads/2.0/restlet-gae-2.0m4.zip
Mark Renouf
3

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

Carl
fuente
2

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).

StaxMan
fuente
Me gustaría preguntarle si tiene alguna solución a mi pregunta aquí stackoverflow.com/questions/32699420/… gracias
Marco Dinatsoli
2

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...

abre como
fuente
El juego se ve muy impresionante. Sin embargo, su integración con GAE no parece que se mantenga dentro del proyecto principal y, por lo tanto, está por detrás del ciclo de lanzamiento de GAE. Su complemento GWT parece retrasarse aún más. No obstante, te daré un voto positivo por mostrarme un proyecto tan genial.
JP Richardson
el módulo gae fue desarrollado y es mantenido por el desarrollador principal, el módulo siena (orm recomendado para gae, jpa tiene muchos problemas) es mantenido por un miembro muy activo de la comunidad, desafortunadamente el módulo gwt no recibe tanta atención en escritura ...
abre como
¡El módulo gae está de nuevo en marcha! otro desarrollador se hizo cargo de él, aquí está el soporte para gae 1.6 playframework.org/modules/gae-1.6.0/home
opensas
2

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.

Nacho Coloma
fuente
1

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

Tyvain
fuente
-1

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.

Niklas R.
fuente