30.6 Desarrollo de API REST con Spring Boot: mapeo de rutas con @RestController y @RequestMapping

El desarrollo de API REST es una parte fundamental de la programación Java moderna y Spring Boot ofrece herramientas poderosas para hacer que este proceso sea eficiente y optimizado. En este capítulo, exploraremos cómo crear API REST con Spring Boot, centrándonos en el mapeo de rutas usando las anotaciones @RestController y @RequestMapping.

¿Qué es una API REST?

Antes de profundizar en la implementación, es importante comprender qué es una API REST. REST (Transferencia de estado representacional) es un estilo arquitectónico para sistemas distribuidos, y una API REST es una interfaz de programación de aplicaciones que se adhiere a este estilo. Permite la comunicación entre diferentes sistemas de software en Internet. Las API REST se basan en recursos y se accede a cada recurso a través de URL únicas. La comunicación se realiza generalmente mediante el protocolo HTTP.

Introducción a Spring Boot

Spring Boot es un proyecto de Spring Framework que tiene como objetivo simplificar el proceso de configuración y publicación de aplicaciones basadas en Spring. Ofrece una forma rápida de crear aplicaciones independientes que se pueden ejecutar fácilmente, lo que reduce la necesidad de configuración manual y optimiza el proceso de desarrollo.

@RestController y @RequestMapping

En el contexto de Spring Boot, @RestController es una anotación que se utiliza para definir un controlador Spring MVC que sirve puntos finales de una API REST. Esta anotación es una especialización de @Controller e indica que la clase manejará las solicitudes web. También garantiza que los datos devueltos por los métodos se escriban directamente en el cuerpo de la respuesta, normalmente en formato JSON o XML.

Por otro lado, @RequestMapping es una anotación que se utiliza para asignar solicitudes web a métodos específicos en controladores. Se puede aplicar tanto a nivel de clase como de método y le permite configurar aspectos de la solicitud como la URL, el método HTTP (GET, POST, PUT, DELETE, etc.), encabezados y parámetros de solicitud.

Creando un controlador con @RestController

Para crear un controlador REST en Spring Boot, comience anotando una clase con @RestController. Esto convierte la clase en un Spring Bean y le permite manejar solicitudes HTTP.

@RestController
clase pública EjemploController {

    // Los métodos del controlador irán aquí

}

Definición de rutas con @RequestMapping

Dentro del controlador, usted define métodos para manejar diferentes rutas. Cada ruta se puede asignar a un método usando @RequestMapping. Puede especificar la ruta de la ruta, el método HTTP y otros detalles de la solicitud.

@RestController
clase pública EjemploController {

    @RequestMapping(valor = "/ejemplo", método = RequestMethod.GET)
    cadena pública getExample() {
        devolver "datos de ejemplo";
    }

}

En el ejemplo anterior, un GET para "/ejemplo" devolverá la cadena "Datos de ejemplo".

Parámetros de ruta y solicitud

Con Spring Boot, puede capturar fácilmente parámetros de ruta y solicitud. Los parámetros de ruta son partes variables de la ruta URL y están anotados con @PathVariable. Los parámetros de solicitud son valores pasados ​​como parte de la cadena de consulta URL y están anotados con @RequestParam.

@RestController
clase pública EjemploController {

    @RequestMapping(valor = "/ejemplo/{id}", método = RequestMethod.GET)
    cadena pública getExampleById(@PathVariable("id") ID larga) {
        // Lógica para devolver un ejemplo basado en la identificación dada
        devolver "Datos de ejemplo con ID: " + id;
    }

    @RequestMapping(valor = "/ejemplo", método = RequestMethod.GET)
    public String getExampleWithParam(@RequestParam(nombre = "nombre", requerido = falso) Nombre de cadena) {
        // Lógica para devolver un ejemplo basado en el nombre de pila
        devolver "Datos de ejemplo con nombre: " + nombre;
    }

}

Respuestas HTTP y códigos de estado

Controlar las respuestas HTTP y los códigos de estado es esencial para una API REST. Spring Boot hace esto fácil con la anotación @ResponseStatus y la clase ResponseEntity. Con @ResponseStatus, puede configurar el código de estado de respuesta directamente en el método del controlador. Con ResponseEntity, tienes un control más preciso sobre la respuesta, pudiendo definir encabezados, cuerpo y código de estado.

@RestController
clase pública EjemploController {

    @RequestMapping(valor = "/ejemplo", método = RequestMethod.POST)
    @ResponseStatus(HttpStatus.CREADO)
    addExample public void(@Ejemplo de ejemplo de RequestBody) {
        // Lógica para agregar un nuevo ejemplo
    }

    @RequestMapping(valor = "/ejemplo/{id}", método = RequestMethod.PUT)
    entidadRespuesta pública<String> updateExample(@PathVariable("id") ID larga, @RequestBody Ejemplo ejemplo) {
        // Lógica para actualizar un ejemplo existente
        return ResponseEntity.ok("Ejemplo actualizado correctamente");
    }

}

Conclusión

El mapeo de rutas con @RestController y @RequestMapping en Spring Boot es un enfoque poderoso y flexible para desarrollar API REST. Con estas anotaciones, puede crear controladores que respondan a diferentes tipos de solicitudes HTTP, manejen parámetros de manera eficiente y controlen las respuestas con elegancia. Al dominar estos conceptos, estará bien equipado para crear API sólidas y escalables en Java.

Ahora responde el ejercicio sobre el contenido:

¿Cuál de las siguientes afirmaciones sobre el desarrollo de 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: manejo de parámetros de solicitud

Siguiente página del libro electrónico gratuito:

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

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.