En Spring Boot, los Query Params (parámetros de consulta) son aquellos que se envían a través de la URL después de un signo de interrogación (?
). Estos parámetros permiten enviar información adicional a un endpoint de una aplicación web. En Spring Boot, se pueden capturar fácilmente en los controladores usando la anotación @RequestParam
.
Para obtener un query param en un controlador de Spring Boot, se utiliza la anotación @RequestParam
. Esta permite mapear el valor del parámetro que se pasa en la URL a un argumento del método del controlador.
@RequestParam
Aquí te muestro un ejemplo de cómo obtener un query param desde la URL. Supongamos que tenemos un endpoint que recibe un parámetro llamado nombre
en la URL:
@RestController
@RequestMapping("/usuarios")
public class UsuarioController {
@GetMapping("/buscar")
public String buscarUsuario(@RequestParam String nombre) {
return "Buscando usuario con nombre: " + nombre;
}
}
En este caso, si haces una petición a:
http://localhost:8080/usuarios/buscar?nombre=Juan
El método buscarUsuario
recibirá el valor "Juan"
en el parámetro nombre
y retornará la cadena:
Buscando usuario con nombre: Juan
Si un query param es opcional, puedes especificar un valor por defecto usando el atributo defaultValue
:
@GetMapping("/buscar")
public String buscarUsuario(@RequestParam(defaultValue = "Invitado") String nombre) {
return "Buscando usuario con nombre: " + nombre;
}
Si la URL no contiene el parámetro nombre
, entonces la respuesta sería:
Buscando usuario con nombre: Invitado
Si el endpoint necesita más de un parámetro de consulta, simplemente añade más argumentos en el método del controlador, cada uno anotado con @RequestParam
:
@GetMapping("/buscar")
public String buscarUsuario(@RequestParam String nombre, @RequestParam int edad) {
return "Buscando usuario con nombre: " + nombre + " y edad: " + edad;
}
Si haces una petición como:
http://localhost:8080/usuarios/buscar?nombre=Juan&edad=25
La respuesta sería:
Buscando usuario con nombre: Juan y edad: 25
1. Un solo parámetro obligatorio:
@GetMapping("/buscar")
public String buscarUsuario(@RequestParam String nombre) {
return "Buscando usuario con nombre: " + nombre;
}
2. Parámetro opcional con valor por defecto:
@GetMapping("/buscar")
public String buscarUsuario(@RequestParam(defaultValue = "Invitado") String nombre) {
return "Buscando usuario con nombre: " + nombre;
}
3. Múltiples parámetros en la URL:
@GetMapping("/buscar")
public String buscarUsuario(@RequestParam String nombre, @RequestParam int edad) {
return "Buscando usuario con nombre: " + nombre + " y edad: " + edad;
}
Para más detalles y ejemplos, puedes consultar la documentación oficial de Spring.
Jorge García
Fullstack developer