Primeros pasos en Backend con Spring Boot
Aprendé cómo una aplicación recibe pedidos, ejecuta lógica y devuelve datos. Sin magia: vas a verlo, leerlo y probarlo paso a paso.
/saludo{ "mensaje": "¡Hola!" }ENTENDAMOS EL MAPA
¿Qué ocurre detrás de la pantalla?
Backend es la parte de una aplicación que trabaja en el servidor. El usuario no la ve directamente, pero la usa cada vez que consulta, guarda o modifica información.
Antes de escribir código, entendamos las decisiones
Podés leer los módulos en orden o abrir solamente el concepto que necesites repasar.
01UN CAMBIO EN EL FLUJODe un programa de consola a un servidor+
En una aplicación de consola, main inicia una secuencia: creamos objetos, llamamos métodos y el programa termina cuando completa las instrucciones. En un backend, Spring Boot inicia un servidor y el programa permanece disponible esperando solicitudes externas.
Podés imaginarlo como un local que abre sus puertas. No prepara todos los pedidos posibles al abrir; responde cuando llega cada cliente. Por eso ahora preguntamos qué solicitudes debe aceptar el programa y qué información debe devolver.
- Consola
- El flujo parte de main y suele terminar al completar las instrucciones.
- Servidor
- Permanece activo y reacciona cuando recibe una petición reconocida.
- Cliente
- Inicia la comunicación desde un navegador, una app u otro sistema.
02LA RESPONSABILIDAD DEL BACKENDMás que “la parte que no se ve”+
El backend es el conjunto de programas que recibe solicitudes y decide qué hacer con ellas. Puede validar datos, aplicar reglas del negocio, consultar una base de datos o comunicarse con otros servicios antes de construir una respuesta.
Imaginá una tienda: el frontend es el mostrador donde elegís un producto. El backend es el equipo que comprueba el stock, calcula el precio y registra la compra. El cliente no necesita conocer ese trabajo interno, pero depende de que sea correcto y seguro.
- Recibir
- Interpretar qué recurso y qué acción solicita el cliente.
- Procesar
- Validar información y ejecutar las reglas de la aplicación.
- Responder
- Enviar un estado HTTP y datos que el cliente pueda interpretar.
03EL IDIOMA DE LA WEBHTTP organiza la conversación+
Cliente y servidor se comunican mediante mensajes HTTP. Una petición combina un método, una ruta, encabezados y, en ciertas operaciones, un cuerpo. El método GET expresa que queremos consultar información sin modificarla.
La respuesta también tiene partes: un código de estado indica el resultado, los encabezados describen el contenido y el cuerpo transporta los datos. Un 200 significa que la operación salió bien; un 404 indica que el recurso solicitado no existe.
- Método
- La intención: consultar con GET, crear con POST o modificar con PUT.
- Ruta
- La dirección del recurso, por ejemplo /productos/1.
- Estado
- El resultado resumido en códigos como 200, 400, 404 o 500.
04SPRING BOOT COMO TRADUCTORDe una URL a un método Java+
Spring Boot inspecciona las anotaciones del código y construye un mapa de rutas. Cuando llega GET /saludo, encuentra el método marcado con @GetMapping("/saludo"), lo ejecuta y utiliza su valor de retorno para crear la respuesta HTTP.
Si el método devuelve un objeto, Spring Boot lo serializa: transforma sus propiedades Java en texto JSON. Eso evita construir el JSON manualmente y permite que frontend y backend evolucionen con un contrato claro.
- @RestController
- Declara una clase que recibe peticiones y devuelve datos.
- @GetMapping
- Relaciona una petición GET y una ruta con un método Java.
- Serialización
- Convierte automáticamente un objeto Java en JSON.
05DISEÑAR PUNTOS DE ENTRADAUna API es más que una clase Java+
Una API web es un conjunto definido de operaciones que otros programas pueden solicitar. Crear una clase Producto modela información; definir GET /productos determina cómo un cliente externo puede pedir esa información.
La dirección base identifica el servidor. En http://localhost:8080/productos, localhost es la computadora, 8080 es el puerto y /productos es la ruta. Junto con GET, esa ruta representa una intención concreta.
- Base
- http://localhost:8080 identifica dónde escucha el servidor.
- Endpoint
- GET /productos es un punto de entrada hacia una operación.
- Recurso
- El nombre de la ruta comunica qué información ofrece la API.
06ALCANCE DE ESTA PRIMERA CLASEDatos en memoria y responsabilidades+
En los primeros ejercicios, los objetos pueden crearse directamente en el código y guardarse en una List. Si el servidor se reinicia, esos datos vuelven a su estado inicial. Esta limitación es intencional: permite estudiar peticiones y respuestas sin sumar todavía una base de datos.
El Controller funciona como puerta de entrada, pero no reemplaza a Producto, Actividad o Libro. Esas clases continúan representando los conceptos y reglas del problema. Más adelante aparecerán otras capas cuando realmente sean necesarias.
- Memoria
- Los datos existen mientras la aplicación está ejecutándose.
- Controller
- Recibe la petición y coordina qué respuesta producir.
- Modelo
- Representa datos y comportamientos propios del problema.
SEGUÍ EL VIAJE
Una petición, paso a paso
GET /saludo→200 OK→LEAMOS CÓDIGO
Endpoints guiados
EJEMPLO 1 DE 4
Tu primer endpoint
El método no se llama desde main. Spring lo ejecuta cuando llega una petición GET que coincide con la ruta.
- @RestController hace que Spring detecte la clase como puerta de entrada web.
- @GetMapping("/saludo") relaciona la ruta con el método saludar().
- El valor retornado se convierte en el cuerpo de la respuesta HTTP.
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class SaludoController {
@GetMapping("/saludo")
public String saludar() {
return "¡Hola desde Spring Boot!";
}
}AHORA PROBÁ VOS
Laboratorio de endpoints
Elegí una ruta y enviá una petición simulada. Observá el estado y el cuerpo que recibiría el navegador.
El servidor devuelve una cadena de texto.
La respuesta aparecerá acá.
Probá enviar la petición.