Mostrando las entradas con la etiqueta Grails. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Grails. Mostrar todas las entradas

miércoles, 25 de junio de 2014

Documetando APIs Rest con Swagger


Te imaginas un javadoc de tus servicios REST? Swagger es eso y mucho más dado que es una herramienta extremadamente útil para describir, producir, consumir y visualizar APIs RESTful. El principal objetivo de este framework es enganchar el sistema de documentación con el código del servidor para que esté sincronizado a cada cambio. Casi documentamos al mismo tiempo que creamos la implementación.

Swagger está desarrollado de tal modo que podemos usar Scala, Java, Javascript, Ruby, PHP o ActionScript para generar toda la documentación y su sandbox correspondiente. Además, existen distintos módulos para enganchar a nuestros proyecto Node.js, Grails, Scala Play, Spring MVC, Symfony o Ruby, entre otros muchos.

Los usuarios de las APIS también son beneficiados ya que proporciona una interfaz visual a modo de sandbox donde podemos testear la llamadas del API, además de consultar su documentación. Podéis echar un vistazo a un ejemplo de la web que genera Swagger a partir del código de nuestra API con los métodos, parámetros y modelos de JSON que devuelve.

Swagger es perfecto para tener la documentación de nuestras APIs a punto y brindarle un servicio más a los clientes con ejemplos.

The Swagger™ Specification: https://github.com/wordnik/swagger-spec
Swagger™ Demo: http://petstore.swagger.wordnik.com/
Downloads: https://github.com/wordnik/swagger-core/wiki/Downloads

martes, 25 de febrero de 2014

Grails y Cassandra, un solo corazón.


Quiero compartir unos slite sobre grails y cassandra. Cassandra es una base de datos NoSQL, utilizada en Facebook y donada a la comunidad apahe.

Dejo link:
http://beckje01.github.io/gum-2014-cassandra-grails-talk/#/4

jueves, 18 de octubre de 2012

Groovy o Scala esa es la cuestión?


Dos lenguajes están haciendose famosos en la plataforma Java, Groovy y Scala; los dos son similares pero tienen diferencias importantes; que son buenas saberlas antes de elegir uno o otro.

Lo principal a mi entender que impulso a Groovy fue Grails fue el caballo de batalla y que le hizo muy buena publicidad al lenguaje. En cambio Scala no tenia un framework de desarrollo ágil que lo impulsara hasta el framework Play! 2. Si bien Grails esta super maduro, play tiene una comunidad muy buena, Por lo tanto podemos decir que en este punto es empate.


Como semejanza los dos lenguajes corren sobre la JVM, con interoperabilidad con toda la plataforma. Los dos son orientados a objetos pero Scala también es funcional y los dos tienen closures. Además los dos permiten un sistema de reutilización con mixins.  

Los dos lenguajes soportan aplicación parcial de una función y curring, pero el uso de estas caracteristicas es más natural en Scala. 

Groovy es un lenguaje dinámicamente tipado, esto puede ser bueno o malo depende de como lo veamos; además Groovy soporta dynamic meta-programming. 


Scala es un lenguaje estáticamente tipado por lo tanto no soporta dynamic meta-programming, es este punto Scala es más parecido a Java pero Scala cuenta con un sistema de tipos más sofisticado que Java. Algo que también hace la curva de aprendizaje más empinada.


Groovy es sintácticamente más parecido a Java pero semánticamente se ve la influencia que tuvo Ruby.

Scala  sintácticamente se ve la influencia de Java y Ruby, pero semánticamente fue influido por Java, SML, Haskell y gBeta.

Scala optimiza las funciones recursivas esto tiene gran importancia en el paradigma funcional pero no tiene tanta importancia en la programación imperativa.

Los dos tienen por defecto evaluación ansiosa o  eagerly; sin embargo Scala permite call-by-name y lazy evaluation. En Groovy se puede emular call-by-name con clousures.

Scala no tiene el concepto de campos o clases estáticas, utiliza singletones; en cambio groovy, si utiliza statics.

Estas son las diferencias más importantes, que tenemos que tener en cuenta cuando escogemos uno o el otro...