Como pudisteis leer en la anterior entrada, recientemente hemos presentado un interesante proyecto al concurso Innova Apps+. Si ya la leísteis, sabréis que nuestro proyecto BBVA Dining+ está realizado con diferentes tecnologías de las que queremos realizar un pequeño análisis y dar nuestra opinión en cuanto a su uso en un proyecto real. En esta entrada hablaremos de GAE (Google App Engine) y de la creación de nuestra API con Google Cloud EndPoints.
GAE es una solución (PaaS: plataforma como servicio) desarrollada por Google que nos permite utilizar sus servidores y publicar nuestras aplicaciones web en ellos. Soporta los lenguajes de programación Phyton, Java, Go, PHP y cualquier lenguaje que utilice la máquina virtual de java.
Ofrece, sin ninguna acción por nuestra parte, una serie de características, como el auto escalado, el balanceo a través de distintas instancias o la seguridad.
De manera gratuita, el servicio ofrece 500 MB de almacenamiento permanente y ancho de banda y CPU para cinco millones de visitas mensuales. En caso de que se quede corto siempre es posible aumentar los servicios mediante el pago del servicio.
Tras informarnos de sus amplias posibilidades nos decantamos por utilizarlo en nuestro proyecto porque nos aportaba todo lo que necesitábamos y era una solución factible y completa. Aun así, hay que decir que se echa de menos una documentación más amplia para sacar todo el partido a esta herramienta de Google.
Para la creación de nuestra API, que interacciona tanto con la App móvil como con la Web de gestión, también nos decidimos por una solución creada por Google. Esta solución es Google Cloud Endpoint.
Los Google Cloud EndPoints son un conjunto de herramientas que nos permiten, de forma muy sencilla, generar las APIs para poder comunicar nuestras aplicaciones clientes (webs y móviles) con una web backend.
Para generar esta API simplemente hay que instalar en el Eclipse el plugin de Google, montar la estructura de nuestras clases y generar la API. Eso sí, para poder utilizar este plugin y que Google nos cree toda la estructura, anotaciones API REST y operaciones de gestión de la base de datos, hay que utilizar JDO o JPA para la persistencia de clases. Esto puede ser un problema a la hora de utilizar los EndPoints ya que estas estructuras tienen una curva de aprendizaje elevada, pero una vez conseguido, la facilidad con que se genera la API merece el esfuerzo.
Este proceso automático nos genera los métodos HTTP: GET (devolución de información), POST (inserciones), PUT (actualizaciones) y DELETE (borrados). Todos estos métodos se pueden personalizar y de esta forma es posible añadir nuevas funcionalidades a nuestra API.
Resumiendo, nuestra experiencia con estas dos soluciones que hemos probado ha sido bastante satisfactoria. Hemos podido desarrollar un proyecto funcional y eficiente, además de aprender algunas cosas nuevas, lo que siempre es interesante.
Para los que queráis más información sobre GAE y los Google Cloud EndPoints podéis encontrar toda la información aquí.