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
- ¿Qué es un @RestController?
- Entorno
- Dependencias
- Creación del @RestController
- Crear el endpoint GET
- 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!!!”.

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:
- Spring. Spring Boot Reference Documentation. docs.spring.io
- GitHub. lab-spring-api-1. github.com/martinezhenry/lab-spring-api-1