2009-06-18 17 views
81

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.¿Aplicación RESTful en Google App Engine Java?

¿Podría compartir sus experiencias creando una aplicación web reposada en Google App Engine utilizando Java o proporcionar alguna información sobre los kits de herramientas antes mencionados en GAE?

Gracias!

Editar (2009-07-25):

he decidido utilizar Restlet por el momento. Parece que funciona perfectamente hasta el momento. Por favor, publique cualquier otra información/opinión que pueda tener. ¿Qué problemas has encontrado? ¿Ha utilizado con éxito Jersey/Restlet/Resteasy en GAE/J? Si es así, queremos oír hablar de eso!

+0

http://technicalrex.com/2014/08/11/creating-a-jersey-app-on-google-app-engine/ y http://www.javacodegeeks.com/2012/05/google-app-engine-j ax-rs-rest-service.html son la mejor turorial sobre la integración de Jersey GAE. –

+0

Es una cuestión de elección del marco al que estamos acostumbrados en nuestro desarrollo, he usado Spring MVC con Objectify y Hibernate y también funciona sin problemas en Google App Engine. –

+0

@AnkurJain sí, muchos cambios en 7 años. –

Respuesta

42

Me complace informar que Restlet M3 funciona SIN DEFECTOS en AppEngine 1.2.2. He seguido los tutoriales de "Primeros pasos" y "Primer recurso" que se encuentran http://restlet.com/technical-resources/restlet-framework/guide.

Por lo tanto, me parece que Restlet es la respuesta para sus aplicaciones GAE/J Restful.

+4

El enlace de arriba ahora está roto. El enlace relevante de GAE para Restlet 2.2 es http://restlet.org/learn/guide/2.2/editions/gae –

-1

Las 2 acciones GAE REST API más engorrosas para hacer funcionar, ya sea Java o .py, son gráficos y cómo mostrar información privada. My little gae rest feed forked another project. Estoy seguro de Java tiene éxito donde pitón atascado debido a la toma de Java y ofrece más formas (ventajas), así como el tiempo más largo (más lento) para tener éxito (desventaja), mientras que los proyectos se abre pitón menos maneras de tener éxito (desfavorable) y menos tiempo de desarrollo (desarrollo rápido ventajoso) para tener el mismo éxito.

2

Por lo que vale la pena, ha habido bastante discusión sobre Jersey user lists cómo hacer que Jersey funcione en GAE. Es un trabajo un poco tedioso debido a las restricciones GAE (clases faltantes de las listas blancas, con suerte se resuelven con el tiempo), pero aparentemente se puede hacer que funcionen. Entonces, aunque no es trivialmente fácil, esa podría ser su mejor apuesta; esp. ya que muchos de los problemas que enfrentan son los mismos para todos los marcos (impuestos por GAE).

+0

me gustaría preguntarle si tiene alguna solución a mi pregunta aquí http://stackoverflow.com/questions/32699420/url-parameters-are-not-being-passed-by-curl-post Gracias –

6

Voy a comenzar a explorar esto también, pero todavía no lo he empezado. Encontré este marco, dice que debería funcionar, pero como he dicho, aún no lo he probado.

http://wiki.restlet.org/docs_1.2/13-restlet/275-restlet/252-restlet.html

Si usted lo consigue trabajo, o director de conseguir una de las sugerencias anteriores de trabajo, actualizar todos como estoy seguro de que hay interés en esto.

+1

I ' Estoy bastante seguro de que Restlet funcionará. Es un poco más desagradable de usar que los demás. Particularmente me gustan las anotaciones que presenta Jersey. Planeo usar Restlet en las próximas semanas. Me aseguraré de publicar una actualización. –

+0

Pasé el fin de semana jugando con esto también, y Restlet funciona muy bien en GAE. Pude juntar algo siguiendo el ejemplo dado en el sitio de Restlet en la url que dejé anteriormente que ahora está abajo. Pero fue trivial configurar todo. – broschb

+0

Escribí una pequeña publicación en mi blog para responder a otra pregunta sobre stackoverflow. Va a través de un ejemplo muy básico de poner en marcha el desabastecimiento en GAE. http://broschb.blogspot.com/2009/08/restful-service-on-google-app-engine.html – broschb

3

Bueno, sería altamente recomendamos que eche un vistazo a play framework

Tener un vistazo al vídeo en la página principal

Tiene una gae module

Con siena como orm para manejar gae datastore

De toda la marcos de Java que he visto hasta ahora, creo que tiene la curva de aprendizaje más fácil,

  • gran documentation,

  • un tutorial para desarrollar una aplicación completa

  • muy activo y servicial de la comunidad ,

  • libre como la cerveza y también como en el habla

  • altamente escalable debido a que es sin estado fuera del diseño de la caja

  • rest friendly

  • altamente personalizable a través de su módulos y plug-in enfoque

más aún, teniendo en cuenta que es para un curso de la universidad , es realmente fácil piratear el código, puedo manejar un par de tickets y nuevas características sin ninguna experiencia con Java, solo un par de años desarrollando aplicaciones web con php

otros beneficios

  • que es muy fácil para empezar, ninguna configuración complicada involucrada, sólo tiene que descargar y descomprimir el archivo y esté preparado

  • gran experiencia en el desarrollo, simplemente fijar el código y golpeó de actualización, el juego autocompiles cambios sobre la marcha cuando se ejecuta en modo de desarrollo

  • rápido y ligero

  • fullstack, que no tienen que integrar c marcos umbersome para que funcione

  • gran informe de errores, no más interminable seguimiento de la pila de error, solo se muestra la línea con el error

  • ninguna configuración XML en cualquier lugar alrededor

  • gran apoyo para TDD con el selenio de prueba integrado

creo que la principal ventaja como herramienta de aprendizaje, es que es posible mirar en el código fuente sin sentirse perdido y el apoyo de la comunidad ...La documentación es muy clara, y puede aprender mucho con solo echarle un vistazo al código fuente ...

+0

El juego se ve muy impresionante. Sin embargo, su integración con GAE no se ve como mantenida dentro del proyecto principal y, por lo tanto, está rezagada con respecto al ciclo de lanzamiento de GAE. Su complemento GWT parece retrasarse aún más. Sin embargo, te daré un voto positivo por mostrarme un proyecto tan genial. –

+0

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 mucha atención de hecho ... – opensas

+0

¡el módulo gae está de nuevo en marcha! otro desarrollador se hizo cargo de esto, aquí está el soporte fot gae 1.6 http://www.playframework.org/modules/gae-1.6.0/home – opensas

2

Recientemente, reuní una plantilla de proyecto con Jersey, Guice and AppEngine en GitHub. Se ha desarrollado con SimpleDS, pero se puede modificar para que funcione fácilmente con Objectify/JDO. El proyecto es en vivo here.

Debe ser un buen punto de partida para nuevos proyectos.

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 puedes copiar y pegar el código, o usar google traduction.

Lo seguí y tenía un servidor Android/GAE en funcionamiento comunicando entre sí en 2 horas. Es una buena base para comenzar o probar Restlet.

http://www.tutos-android.com/webservice-rest-android-appengine-restlet-objectify

buena suerte

3

Dado que estos valientes soluciones de mayor edad fueron parcheados en conjunto, Google aparentemente ha suministrado un plugin de Eclipse para crear un proyecto inicial que produce una aplicación de App Engine, un APK Android, y una Web aplicación, todos hablando entre sí a través de una interfaz definida por un único conjunto de declaraciones de objetos anotados.

no he probado esto todavía a mí mismo, pero no echar un vistazo antes de probar cualquiera de los ejemplos más heterogéneos descritos en los mensajes anteriores arriba:

https://developers.google.com/eclipse/docs/appengine_connected_android

Este video Google también es bastante informativo:

http://www.youtube.com/watch?v=NU_wNR_UUn4