Como desarrollar un Servicio Web REST con Java y Spring

March 28, 2014 by
Bacalov, Damian

En este artículo veremos lo sencillo que es crear un Servicio Web REST que responda en formato JSON con SpringSource Tool Suite (STS).

En la “Arquitectura de aplicaciones corporativas para nube” que propone VMware, la Capa de Negocio ofrece un Servicio REST que responde en formato JSON listo para ser utilizado por el Javascript de aplicación de Front End.

Veamos que tanto esfuerzo supone para crear nuestro primer Servicio REST JSON.

Paso 1: crear el nuevo proyecto

Abrimos SpringSource Tool Suite, seleccionamos New -> Spring Project -> Spring MVC Project y simplemente completamos el nombre del proyecto. Si es la primera vez que lo usamos, STS bajará el template automáticamente de Internet.

Crear nuevo proyecto Spring MVC

Una vez finalizado el proceso veremos el conocido proyecto MVC con el “HomeController.java”, la vista “home.jsp” y el pom.xml.

Default Project

 

Paso 2: construir la entidad que el servicio le entregará a la capa de presentación

Para esta demo construimos una entidad “Persona” con tres campos (nombre, apellido y edad) y sus correspondientes “getters” y “setters”. De hecho, estos últimos no son realmente necesarios.

Entidad Persona

Paso 3: modificando el “controller”

Creamos un nuevo método en “HomeController.java” que responde a la URL “/persona” y que requiere un parámetro llamado “id”. Este parámetro podría ser opcional, pero lo hicimos así para mantener todo lo más simple posible.

Lo importante es que, en lugar de devolver un “String” con el nombre de la vista (home.jsp), este nuevo método devuelve directamente un objeto del tipo “Persona”. La etiqueta @ResponseBody le dice a Spring Framework que convierta el objeto en una respuesta http.

Por supuesto que debería haber una lógica para buscar los datos de la persona basándonos en el “id”, pero por ahora devolveremos siempre el mismo objeto.

HomeController

Paso 4: agregando dependencias

Para convertir nuestro objeto en una respuesta http válida, Spring Framework busca una librería que sepa cómo hacerlo. Si quisiéramos ejecutar nuestro proyecto en este momento nos daría un error diciendo que no encuentra ninguna que haga el trabajo.

Para solucionar esto, en el archivo pom.xml agregamos las siguientes dependencias (Podrían ser otras que hagan lo mismo).

Dependencias pom.xml

Luego, hacemos clic derecho y seleccionamos Run as -> Maven build y en “Goals” escribimos package. De esta forma descargaremos las nuevas librerías.

Maven run

Paso 5: ejecutar

Finalmente hacemos clic derecho sobre el proyecto, Run as -> Run on server, seleccionamos el tcServer que instaló SpringSource Tool Suite y aparecerá la página inicial de nuestro proyecto web MVC.

Para ver nuestro trabajo, modificamos la URL y agregamos “/persona?id=1”. Veremos que la respuesta es JSON con los datos de la entidad Persona lista para ser utilizado por Javascript.

Respuesta JSON

Conclusión

Al momento de desarrollar la capa de negocio de nuestra aplicación corporativa para la nube, simplemente debemos preocuparnos por las reglas de negocio. De todo lo demás se encarga Spring Framework.