Volver a la página principal
domingo 20 octubre 2024
13

Cómo obtener un Query Param en Spring Boot

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.

Obtener Query Params en Spring Boot

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.

Ejemplo básico con @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

Parámetros opcionales

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

Manejo de múltiples Query Params

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

Algunos ejemplos

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.

Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer