Creando un Spring Boot @RestController


Por Martinez Henry


Resumen (TL;DR)

Con apenas unas pocas anotaciones, Spring Boot permite crear servicios web RESTful de forma rápida. En este artículo vemos cómo construir un @RestController básico con un endpoint tipo GET desde cero.


📑 Tabla de Contenido

  1. ¿Qué es un @RestController?
  2. Entorno
  3. Dependencias
  4. Creación del @RestController
  5. Crear el endpoint GET
  6. Conclusión

Creando un Spring Boot @RestController

En este espacio daré una breve explicación con un ejemplo práctico de cómo generar un Controlador de tipo @RestController con Spring Boot.

Un controlador de tipo @RestController permite generar servicios web Restful. Con solo la anotación @RestController, la clase queda habilitada para recibir peticiones web y generar respuestas, aunque por sí sola no define las acciones (endpoints).

Puedes encontrar el ejemplo de la aplicación en el repositorio de GitHub lab-spring-api-1.


Entorno

  • Spring Boot versión 2.5.3
  • JDK versión 11
  • Maven versión 3.6.3

Dependencias

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-webflux</artifactId>
    <version>${spring-boot-version}</version>
</dependency>

Creación del @RestController

En la clase HelloController se aprecia la anotación @RestController encima de la declaración de la clase, indicando que esta clase se comportará como un servicio web. Con esto, Spring Boot preparará todas las dependencias necesarias para usar las acciones (endpoints) en esta clase.

@RestController
public class HelloController {

}

Crear el servicio web con una acción (endpoint) tipo GET

Para darle uso a @RestController debemos declarar un método que indique qué verbo REST queremos exponer. Usaremos @GetMapping por simplicidad.

Primero definimos el método sayHello():

public String sayHello(){
    return "Hello there!!!";
}

Ahora agregamos la anotación @GetMapping:

@GetMapping
public String sayHello(){
    return "Hello there!!!";
}

Ejecutamos la aplicación con:

mvn spring-boot:run

Deberíamos ver algo como esto en consola:

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v2.5.3)

2021-08-07 16:02:22.558  INFO --- o.s.b.web.embedded.netty.NettyWebServer  : Netty started on port 8080
2021-08-07 16:02:22.570  INFO --- com.hvs.api.hello.HelloApplication       : Started HelloApplication in 1.34 seconds

Ve a http://localhost:8080/ en tu navegador y verás la frase “Hello there!!!”.

hell2.jpg


Conclusión

En este caso práctico logramos ver que con algunas anotaciones Spring Boot nos permite crear servicios web de una manera rápida y sencilla. Este ejemplo se simplificó al máximo para enfocar el uso de @RestController y @GetMapping.


Referencias e Inspiraciones: