domingo, 27 de agosto de 2017

Web Services con Spring Boot: nivel básico

Ya hace un tiempo realizamos una aproximación de un uso básico de Spring Boot. En este caso veremos como hacer un web service con Spring Boot. Que en verdad es practicamente lo mismo pero con un servicio REST. En este caso intentaremos fijarnos un poco más en la configuración que tenemos y porque la hacemos.

El fichero pom.xml consta de:
  • La declaración de la herencia por parte de spring boot parent. Con esto incluimos una configuración base del proyecto. Podremos sobreescribir o extender estos valores por defecto a través de propiedades del pom.xml o propiedades incluidas en el fichero application.properties
  • La dependencia de spring-boot-starter-web que indicará que es una aplicación web y que podemos desplegarla en un servidor web (por defecto tomcat 8 en estas versiones).
  • A la hora de desarrollar yo suelo incluir siempre la librería de spring-boot: spring-boot-devtools, que nos aporta más información en consola. 
<parent>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-parent</artifactId>
 <version>1.5.6.RELEASE</version>
</parent>
<properties>
 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
 <java.version>1.7</java.version>
</properties>
<dependencies>
 <dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
 </dependency>
</dependencies>

Para crear el sevicio web REST deberemos crear una clase de tipo 'RestController'. Con el uso de dicha anotación, estaremos diciendo que aquello devuelto por el método será encapsulado en el 'body' de la respuesta y por defecto con tipo 'application/json'. Sería lo mismo que añadir la anotación '@Controller' a nivel de la clase y luego la anotación '@ResponseBody' en cada método.

La anotación '@GetMapping' indicará que la url que indicamos debe ser invocada con un método 'GET' y con '@RequestParam' indicamos que en dicha llamada vendrá un parámetro por la request denominado 'nombre'.


@RestController
public class SaludoRestController {
 @GetMapping("/saludo")
 public Saludo Saludo(@RequestParam(value = "nombre", defaultValue = "Mundo") final String nombre) {
  return new Saludo("Hola", nombre);
 }
}

Ya solo nos queda ejecutar la clase 'Aplicación' (aquella que contiene la anotación '@SpringBootApplication') y hacer la siguiente llamada en el navegador: http://localhost:8080/saludo?nombre=Ender

La guía de este mismo ejemplo la podeis encontrar aquí y mí código en Github aquí.

No hay comentarios:

Publicar un comentario