SpringBoot
Tutorial SpringBoot: Controladores Spring REST
Spring Boot controladores REST: creación y uso. Domina la creación y uso de controladores REST en Spring Boot con ejemplos prácticos y detallados.
Introducción
El término REST en "Controlador Spring REST" se refiere a "Representational State Transfer", que es un conjunto de principios de diseño para desarrollar servicios web. Estos servicios web permiten a los clientes interactuar con los recursos del servidor mediante operaciones HTTP estándar como:
- GET (para obtener un recurso)
- POST (para crear un nuevo recurso)
- PUT (para actualizar un recurso existente)
- DELETE (para eliminar un recurso)
REST es ampliamente utilizado en la construcción de aplicaciones web debido a su simplicidad, escalabilidad y compatibilidad con los protocolos de internet.
¿Qué es un Controlador Spring REST?
En Spring un controlador REST es una clase en Java anotada con @RestController
, que indica a Spring que esta clase va a funcionar como un controlador que manejará las solicitudes HTTP entrantes y enviará respuestas HTTP.
Un controlador REST puede tener uno o más métodos, cada uno de los cuales está diseñado para manejar una operación HTTP específica.
Cada uno de estos métodos se anota con una anotación correspondiente como @GetMapping
, @PostMapping
, @PutMapping
o @DeleteMapping
, que mapean la operación HTTP a ese método específico.
Un aspecto crucial de los controladores Spring REST es que los datos de respuesta se convierten automáticamente al formato apropiado (generalmente JSON o XML) antes de enviarse al cliente. Esto se debe a la anotación @RestController
, que es una combinación de las anotaciones @Controller
y @ResponseBody
. La anotación @ResponseBody
indica a Spring que debe convertir automáticamente el valor devuelto por el método del controlador en una representación adecuada del recurso y enviarla en el cuerpo de la respuesta HTTP.
Por tanto, un Controlador Spring REST es una forma rápida y flexible de crear servicios web RESTful con Spring, permitiendo una fácil interacción entre los clientes y los recursos del servidor.
Configuración
Para configurar un controlador REST en una aplicación Spring Boot, hay que seguir ciertos pasos que permitirán que la aplicación maneje las solicitudes HTTP y responda adecuadamente.
Spring Boot también integra automáticamente los controladores REST con el servidor web incorporado (por defecto, Tomcat). Esto significa que no es necesario configurar manualmente un servlet para manejar las solicitudes HTTP y enrutarlas a los controladores REST como podría hacerse con Java EE / Jakarta EE. Spring Boot lo hace automáticamente.
Dependencias
Primero, es esencial incluir las dependencias necesarias en el archivo pom.xml
si se está utilizando Maven, o build.gradle
si se está utilizando Gradle. La dependencia más crucial para una aplicación web Spring Boot es spring-boot-starter-web
, que incluye Spring MVC y Tomcat, junto con otras dependencias útiles.
En Maven, la dependencia se agrega de la siguiente manera:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
En Gradle, se agrega de la siguiente manera:
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
}
Creación de un Controlador REST
Una vez que las dependencias están en su lugar, el siguiente paso es crear un controlador REST. Esto implica crear una clase Java y anotarla con @RestController
. Esta anotación le dice a Spring que esta clase es un controlador que puede manejar las solicitudes HTTP.
Aquí se muestra un ejemplo de cómo se vería un controlador REST simple:
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.GetMapping;
@RestController
public class MiControlador {
@GetMapping("/saludo")
public String saludo() {
return "Hola Mundo!";
}
}
En este ejemplo, MiControlador
es un controlador REST que manejará las solicitudes GET a la ruta "/saludo". Cuando se realiza una solicitud GET a esta ruta, el método saludo()
se ejecutará y responderá con la cadena "Hola Mundo!".
Trabajando con Parámetros
package com.example.demo.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class StringParameterController {
@GetMapping("/greet/{name}")
public String greet(@PathVariable String name) {
return "Hello, " + name + "!";
}
}
En el anterior ejemplo se accede a la url http://localhost:8080/greet/prueba
y hará que el controlador reciba la palabra prueba.
package com.example.demo.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class LongParameterController {
@GetMapping("/square/{number}")
public Long square(@PathVariable Long number) {
return number * number;
}
}
En el anterior ejemplo se accede a la url http://localhost:8080/square/2
y hará que el controlador reciba un número.
Retorno de datos
Los métodos del controlador pueden retornar datos directamente. Los datos retornados se convierten automáticamente al formato apropiado (normalmente JSON) antes de enviarse en la respuesta HTTP. Esto es manejado por Spring gracias a la anotación @RestController
.
En resumen, la creación y uso de controladores en Spring Boot implica definir una clase controladora, anotarla con @RestController
, definir métodos para manejar diferentes tipos de solicitudes HTTP, trabajar con parámetros según sea necesario, y retornar datos que se enviarán en la respuesta HTTP.
Ejercicios de esta lección Controladores Spring REST
Evalúa tus conocimientos de esta lección Controladores Spring REST con nuestros retos de programación de tipo Test, Puzzle, Código y Proyecto con VSCode, guiados por IA.
Web y Test Starters
Entidades JPA
Repositorios reactivos
Inserción de datos
Borrar datos de base de datos
Controladores Spring MVC
Backend API REST con Spring Boot
Operadores Reactivos
Controladores Spring REST
Uso de Spring con Thymeleaf
Crear entidades JPA
Registro de usuarios
CRUD y JPA Repository
Anotaciones y mapeo en JPA
Integración con Vue
Consultas JPQL con @Query en Spring Data JPA
Open API y cómo agregarlo en Spring Boot
Uso de Controladores REST
API Specification
Inyección de dependencias
Introducción a Spring Boot
Consultas JPQL con @Query en Spring Data JPA
API Query By Example (QBE)
Inyección de dependencias
Vista en Spring MVC con Thymeleaf
Servicios en Spring
Configuración de Vue
Integración con Angular
API Query By Example (QBE)
API Specification
Controladores MVC
Métodos find en repositorios
Repositorios Spring Data
Inyección de dependencias
Data JPA y Mail Starters
Configuración de Angular
Controladores Spring REST
Configuración de Controladores MVC
Asociaciones de entidades JPA
Actualizar datos de base de datos
Identificadores y relaciones JPA
Verificar token JWT en peticiones
Login de usuarios
Integración con React
Configuración de React
Asociaciones en JPA
Consultas JPQL
Todas las lecciones de SpringBoot
Accede a todas las lecciones de SpringBoot y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.
Introducción A Spring Boot
Introducción Y Entorno
Spring Boot Starters
Introducción Y Entorno
Inyección De Dependencias
Introducción Y Entorno
Controladores Spring Mvc
Spring Web
Vista En Spring Mvc Con Thymeleaf
Spring Web
Controladores Spring Rest
Spring Web
Open Api Y Cómo Agregarlo En Spring Boot
Spring Web
Servicios En Spring
Spring Web
Crear Entidades Jpa
Persistencia Con Spring Data
Asociaciones De Entidades Jpa
Persistencia Con Spring Data
Repositorios Spring Data
Persistencia Con Spring Data
Métodos Find En Repositorios
Persistencia Con Spring Data
Inserción De Datos
Persistencia Con Spring Data
Actualizar Datos De Base De Datos
Persistencia Con Spring Data
Borrar Datos De Base De Datos
Persistencia Con Spring Data
Consultas Jpql Con @Query En Spring Data Jpa
Persistencia Con Spring Data
Api Query By Example (Qbe)
Persistencia Con Spring Data
Repositorios Reactivos
Persistencia Con Spring Data
Api Specification
Persistencia Con Spring Data
Integración Con React
Integración Frontend
Integración Con Vue
Integración Frontend
Integración Con Angular
Integración Frontend
Registro De Usuarios
Seguridad Con Spring Security
Login De Usuarios
Seguridad Con Spring Security
Verificar Token Jwt En Peticiones
Seguridad Con Spring Security
En esta lección
Objetivos de aprendizaje de esta lección
- Comprender qué son los Controladores Spring REST y su papel en una aplicación Spring Boot.
- Aprender a configurar y utilizar Controladores Spring REST, incluyendo la definición de rutas, manejo de diferentes tipos de solicitudes HTTP, y el trabajo con parámetros de solicitud.
- Entender cómo los Controladores Spring REST se integran con el resto de una aplicación Spring Boot y cómo interactúan con otras características como la inyección de dependencias y la seguridad.
- Ser capaz de diseñar y construir Controladores Spring REST efectivos para manejar las necesidades específicas de su aplicación.