martes, 17 de junio de 2014

RestGenerator (Generador de servicios rest)

Hola

En esta entrada voy hablar sobre el generador que he creado para crear servicios rest desde una tabla de base de datos. RestGenerator es una herramienta de RAD (rapid application development). La idea principal de RestGenerator es la siguiente:







Lo que hace rest generador es leer la tablas de la base de datos y crear un proyecto de servicio rest con las operacion CRUD de cada una de la tablas.

El proyecto que generar utiliza la siguiente tecnologías:
  1. Jersey
  2. Spring
  3. Mybatis
RestGenerator es un proyecto que esta basado en Maven, las únicas restinciónespara poder usar el generador son la siguientes:
  1. Java (1.6 o superior)
  2. Maven 3
El proyecto esta formado por un plugin y un arquetipo de maven y la mejor forma de entender Restgenerator es hacer un prueba, como simpre el proyecto lo tengo github enlace además en Readme.md tiene la explicación de la instalación y uso.

Cualquier duda sobre el generador preguntarme.




jueves, 5 de junio de 2014

Jersey 2 con Jboss 6.1

Hola

En esta entrada voy hablar como configurar Jboss 6.1 para funcionar con Jersey 2, Jboss tiene como implementación de JAX-RS RestEasy que pertenece a Jboss (lógico que use esta implementación), lo que hay que hacer es desactivar el módulo de JAX-RS para eso tenemos que ir al fichero module.xml:

${JBOSS_HOME}/modules/system/layers/base/javax/ws/rs/api/main

Y comentar la siguientes lineas:

 <resources>
        <!-- Disable the next line Para coger la version JSX-RS 2.0-->
        <!-- <resource-root path="jboss-jaxrs-api_1.1_spec-1.0.1.Final-redhat-2.jar"/> -->
        <!-- Insert resources here -->
    </resources>


Ahora vamos a comentar standalone.xml
${JBOSS_HOME}/standalone/configuration

Y comentar la siguientes lineas:

 
<!--<extension module="org.jboss.as.jaxrs"//>-->
<!--<subsystem xmlns="urn:jboss:domain:jaxrs:1.0"/>-->

Lo único malo de esto es que estamos desactivado JAX-RS para todos los proyectos web.


miércoles, 4 de junio de 2014

Spring MVC (Servicios Rest)

Hola

En esta entrada voy hablar como hacer servicios rest con Spring MVC, como bien sabéis anteriormente había publicado como hacer servicios rest con Jersey y RestEasy. Spring para poder adaptarse a elegido a Spring MVC dar mas funcionalidad en vez de crear una nuevo modulo para los servicios rest. Si habeis programdor aplicaciones web con Spring MVC el aprendizaje va ser casi instantaneo y si veneis de Jersey o RestEasy su aprendizaje tambie va ser rápido.

Las Capas de Servicios y Dao son iguales que en los ejemplos que tenemos en Jersey y RestEasy por eso voy a explicar el controlador y la configuración.

Controlador

Es la clase que se encarga de recibir la peticion, procesar y dar una respuesta. el codigo es el siguiente:

@Controller
@RequestMapping(value = "/cursos")
public class CursoWS {

        @Autowired
 private CursoService service;

        @RequestMapping(value = "/all", method = RequestMethod.GET, produces = "application/json")
 @ResponseBody
 @ResponseStatus(value = HttpStatus.OK)
 public List getCursos() {  
  CursoExample example = new CursoExample();
  example.createCriteria().andActivoEqualTo(true);
  return service.getAll(example);
 }
}

Como veis es parecido a Jersey y RestEasy, lo que cambia es el Path por RequestMapping para indicar la url de nuestro servicio rest. Por lo demas es casi igual que Jersey y RestEasy.
Con esto ya tenemos el servicio rest lo único falta es la configuración para que funcione es activar la configuración de mvc en nuestro applicationContext


Con esto ya tenemos activada la configuración spring mvc y por último creamos un fichero en WEB-INF con el nombre spring-dispatcher-servlet.xml con la siguiente códgio
 

Por último el web.xml

  SpringMVCRest
  org.springframework.web.servlet.DispatcherServlet
  
            contextConfigLocation
            /WEB-INF/spring-dispatcher-servlet.xml
        
        1
 
 
 
  SpringMVCRest
  /rest/*
 
Con esto ya tenemos todo, como simepre el ejemplo completo en github