Desarrollo de API REST con Spring Boot: manejo de parámetros de solicitud

Cuando se trata de desarrollar API REST utilizando Spring Boot, uno de los aspectos más importantes que se deben dominar es el manejo adecuado de los parámetros de solicitud. Estos parámetros son esenciales para la comunicación entre el cliente y el servidor, permitiendo a los usuarios proporcionar información que influye en el comportamiento de la API.

Comprensión de los tipos de parámetros de solicitud

Existen diferentes tipos de parámetros de solicitud que se pueden utilizar en una API REST:

  • Parámetros de consulta: Se incluyen en la URL después del símbolo '?'. Se utilizan para filtrar recursos o modificar la respuesta de alguna manera. Ejemplo: /users?age=25
  • Variables de ruta: se utilizan para identificar un recurso específico dentro de una colección de recursos. Son parte de la URL. Ejemplo: /usuarios/{userId}
  • Cuerpo de la solicitud: contiene datos enviados en formato JSON o XML que se utilizan para crear o actualizar recursos.
  • Encabezados de solicitud: proporcione información adicional sobre la solicitud, como el tipo de contenido o autenticación.

Tratamiento de parámetros de consulta

En Spring Boot, los parámetros de consulta se pueden manejar fácilmente con la anotación @RequestParam. Esta anotación se puede utilizar para asignar parámetros de consulta individuales a parámetros de método en un controlador. Por ejemplo:

@GetMapping("/usuarios")
entidadRespuesta pública<Lista<Usuario>> getUsers(@RequestParam(valor = "edad", requerido = falso) Edad entera) {
    // Lógica para filtrar usuarios por edad
    devolver ResponseEntity.ok(userService.getUsersByAge(edad));
}
    

Si no se proporciona el parámetro 'edad', el valor será null y la API puede devolver todos los usuarios. Si se proporciona, la API filtrará a los usuarios por la edad especificada.

Tratamiento de variables de ruta

Para manejar variables de ruta, Spring Boot usa la anotación @PathVariable. Esto le permite extraer valores de partes variables de la URL. Vea el siguiente ejemplo:

@GetMapping("/usuarios/{userId}")
entidadRespuesta pública<Usuario> getUserById(@PathVariable ID de usuario largo) {
    // Lógica para buscar un usuario por ID
    devolver ResponseEntity.ok(userService.getUserById(userId));
}
    

El valor de {userId} en la URL está vinculado al parámetro userId del método.

Cuerpo de solicitud de tratamiento

Para manejar los datos enviados en el cuerpo de la solicitud, como JSON o XML, utilizamos la anotación @RequestBody. Esto permite que Spring Boot deserialice automáticamente el cuerpo de la solicitud en un objeto Java. Por ejemplo:

@PostMapping("/usuarios")
entidadRespuesta pública<Usuario> crearUsuario(@RequestBody Usuario nuevoUsuario) {
    // Lógica para crear un nuevo usuario
    return ResponseEntity.status(HttpStatus.CREADO).body(userService.createUser(newUser));
}
    

Aquí, el JSON enviado en la solicitud se convierte en un objeto Usuario.

Tratamiento de encabezados de solicitud

Los encabezados de solicitud se pueden manejar usando la anotación @RequestHeader. Esto es útil para extraer información como tokens de autenticación o tipos de contenido. Vea un ejemplo:

@GetMapping("/usuarios")
entidadRespuesta pública<Lista<Usuario>> getUsers(@RequestHeader(valor = "Autorización") String authToken) {
    // Lógica para autenticar al usuario con el token proporcionado
    devolver ResponseEntity.ok(userService.getAuthenticatedUsers(authToken));
}
    

Este método extrae el valor del encabezado 'Autorización' y lo utiliza para autenticar al usuario antes de devolver la lista de usuarios.

Validación de parámetros

Además de simplemente tratar los parámetros, a menudo es necesario validarlos. Spring Boot admite la integración con la API Bean Validation para validar los parámetros de solicitud. Por ejemplo:

@PostMapping("/usuarios")
entidadRespuesta pública<Usuario> crearUsuario(@Valid @RequestBody Usuario nuevoUsuario) {
    // Lógica para crear un nuevo usuario
    return ResponseEntity.status(HttpStatus.CREADO).body(userService.createUser(newUser));
}
    

Aquí, el objeto Usuario se validará según las restricciones definidas en sus anotaciones de validación (como @NotNull, @Size, etc. ) antes de ser procesado por el método.

Conclusión

El tratamiento adecuado de los parámetros de la solicitud es un aspecto fundamentalmental en el desarrollo de API REST con Spring Boot. Comprender cómo utilizar las anotaciones @RequestParam, @PathVariable, @RequestBody y @RequestHeader, así como la validación. de parámetros, le permite crear API sólidas y flexibles que pueden satisfacer las necesidades de los usuarios de manera eficiente.

Ahora responde el ejercicio sobre el contenido:

¿Cuál de las siguientes afirmaciones sobre el manejo de parámetros de solicitud en API REST con Spring Boot es correcta?

¡Tienes razón! Felicitaciones, ahora pasa a la página siguiente.

¡Tú error! Inténtalo de nuevo.

Imagen del artículo Desarrollo de API REST con Spring Boot: creación de servicios e inyección de dependencias

Siguiente página del libro electrónico gratuito:

133Desarrollo de API REST con Spring Boot: creación de servicios e inyección de dependencias

5 minutos

¡Obtén tu certificado para este curso gratis! descargando la aplicación Cursa y leyendo el libro electrónico allí. ¡Disponible en Google Play o App Store!

Disponible en Google Play Disponible en App Store

+ 6,5 millones
estudiantes

Certificado gratuito y
válido con código QR

48 mil ejercicios
gratis

Calificación de 4.8/5
en tiendas de aplicaciones

Cursos gratuitos de
vídeo, audio y texto.