Gruki Logo

Gruki - Documentación de Programación

Java

Controladores en Spring Boot: Tu Puente entre el Usuario y la Aplicación

Aprende a crear controladores en Spring Boot de forma sencilla y crea aplicaciones web interactivas. Descubre cómo manejar las peticiones del usuario y enviar respuestas adecuadas.

Imagina que tienes un robot que prepara sándwiches. El usuario le pide un sándwich de jamón y queso, y el robot le entrega el sándwich perfecto. En Spring Boot, un controlador es como ese robot. Recibe las peticiones del usuario (como pedir un sándwich) y le da una respuesta (como entregar el sándwich).

Los controladores en Spring Boot son clases especiales que se encargan de recibir las peticiones de los usuarios, procesarlas y devolver una respuesta. Son el corazón de tu aplicación web, el intermediario entre el usuario y la lógica de tu programa.

Creando tu Primer Controlador: ¡Hola Mundo!

Para crear un controlador, necesitas una clase Java y algunas anotaciones mágicas de Spring Boot. Estas anotaciones le dicen a Spring Boot que esta clase es un controlador y cómo debe manejar las peticiones.

Vamos a crear un controlador que diga '¡Hola Mundo!' cuando alguien visite nuestra página web. Piensa en esto como el primer sándwich que nuestro robot aprende a hacer.

Puntos importantes:

  • La anotación `@RestController` le dice a Spring Boot que esta clase es un controlador que devuelve datos directamente en la respuesta (como texto, JSON, etc.). Es como el letrero de nuestro robot que dice '¡Aquí hacemos sándwiches!'.
  • La anotación `@GetMapping("/hola")` le dice a Spring Boot que este método se encargará de las peticiones que lleguen a la dirección '/hola' de nuestra página web. Es como decirle al robot: 'Si alguien pide un sándwich en la puerta principal, tú te encargas'.

Recibiendo Información del Usuario: ¡Personalizando tu Sándwich!

Ahora, vamos a hacer que nuestro robot sea más inteligente. Queremos que pueda recibir información del usuario, como el nombre de la persona que pide el sándwich, y saludarla por su nombre.

Para esto, usamos la anotación `@RequestParam`. Esta anotación le dice a Spring Boot que queremos recibir un parámetro en la petición y usarlo en nuestro método.

Puntos importantes:

  • El parámetro `name` en el método `saludar` es como decirle al robot: 'Quiero que sepas el nombre de la persona que está pidiendo el sándwich'.
  • Si el usuario no proporciona el nombre, le daremos un saludo genérico. Es como decirle al robot: 'Si nadie dice su nombre, saluda a todos de forma general'.

Controladores que Devuelven Datos: ¡El Menú del Robot!

Los controladores no solo pueden devolver texto. También pueden devolver objetos Java, que Spring Boot convertirá automáticamente a formato JSON. Imagina que queremos que nuestro robot muestre un menú con los diferentes sándwiches que puede preparar.

Para esto, creamos una clase Java que represente un sándwich y luego la devolvemos desde nuestro controlador.

Puntos importantes:

  • Spring Boot se encarga de convertir el objeto `Sandwich` a JSON automáticamente. Es como si nuestro robot tuviera una impresora 3D que convierte sándwiches en imágenes digitales para mostrarlos en el menú.
  • El formato JSON es un formato estándar para intercambiar datos entre aplicaciones web. Es como el idioma universal que hablan todos los robots.

Ejemplos de Código

Ejemplo de un controlador simple en Spring Boot que devuelve '¡Hola Mundo!'

Lenguaje: Java

Explicación del código:

  1. Línea 1: Línea 1: Importamos la anotación `@GetMapping`, que se usa para mapear peticiones HTTP GET a métodos específicos.
  2. Línea 2: Línea 2: Importamos la anotación `@RestController`, que indica que esta clase es un controlador que devuelve datos directamente.
  3. Línea 3: Línea 4: `@RestController` marca la clase como un controlador REST, listo para manejar peticiones web.
  4. Línea 4: Línea 5: Declaramos la clase `HolaMundoController`, que será nuestro controlador.
  5. Línea 5: Línea 7: `@GetMapping("/hola")` mapea las peticiones a la ruta "/hola" a este método.
  6. Línea 6: Línea 8: Declaramos el método `hola`, que será el encargado de manejar las peticiones a la ruta "/hola".
  7. Línea 7: Línea 9: El método `hola` devuelve el texto "¡Hola Mundo!". Este texto será la respuesta que el usuario verá en su navegador.

Ejemplo de un controlador que recibe un parámetro del usuario y lo utiliza para saludar.

Lenguaje: Java

Explicación del código:

  1. Línea 1: Línea 1: Importamos la anotación `@GetMapping` para mapear peticiones HTTP GET.
  2. Línea 2: Línea 2: Importamos la anotación `@RequestParam` para recibir parámetros de la petición.
  3. Línea 3: Línea 3: Importamos la anotación `@RestController` para marcar la clase como un controlador REST.
  4. Línea 4: Línea 5: `@RestController` marca la clase como un controlador REST, listo para manejar peticiones web.
  5. Línea 5: Línea 6: Declaramos la clase `SaludoController`, que será nuestro controlador.
  6. Línea 6: Línea 8: `@GetMapping("/saludar")` mapea las peticiones a la ruta "/saludar" a este método.
  7. Línea 7: Línea 9: Declaramos el método `saludar`, que recibirá un parámetro llamado `name`.
  8. Línea 8: Línea 9: `@RequestParam(value = "name", defaultValue = "Visitante")` indica que recibiremos un parámetro llamado `name`. Si no se proporciona el parámetro, el valor por defecto será "Visitante".
  9. Línea 9: Línea 10: El método `saludar` devuelve un saludo personalizado con el nombre proporcionado (o "Visitante" si no se proporciona nombre).

Ejemplo de un controlador que devuelve un objeto Java como JSON.

Lenguaje: Java

Explicación del código:

  1. Línea 1: Línea 1: Importamos la anotación `@GetMapping` para mapear peticiones HTTP GET.
  2. Línea 2: Línea 2: Importamos la anotación `@RestController` para marcar la clase como un controlador REST.
  3. Línea 3: Línea 4: `@RestController` marca la clase como un controlador REST, listo para manejar peticiones web.
  4. Línea 4: Línea 5: Declaramos la clase `SandwichController`, que será nuestro controlador.
  5. Línea 5: Línea 7: `@GetMapping("/sandwich")` mapea las peticiones a la ruta "/sandwich" a este método.
  6. Línea 6: Línea 8: Declaramos el método `getSandwich`, que devolverá un objeto de la clase `Sandwich`.
  7. Línea 7: Línea 9: Creamos un nuevo objeto `Sandwich` con nombre "Jamón y Queso" y precio 5.50, y lo devolvemos.
  8. Línea 8: Línea 12: Declaramos la clase interna `Sandwich`, que representa un sándwich.
  9. Línea 9: Línea 13: `private String nombre;` declara un atributo privado para el nombre del sándwich.
  10. Línea 10: Línea 14: `private double precio;` declara un atributo privado para el precio del sándwich.
  11. Línea 11: Línea 16: `public Sandwich(String nombre, double precio) { ... }` es el constructor de la clase Sandwich, que inicializa el nombre y el precio.
  12. Línea 12: Líneas 20-23: El método `getNombre()` devuelve el nombre del sándwich.
  13. Línea 13: Líneas 25-28: El método `getPrecio()` devuelve el precio del sándwich.

Recursos relacionados

Explora más contenido relacionado con Creación de controladores en Spring Boot. para profundizar tus conocimientos.