CLASE 01 · BACKEND DESDE CERO

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.

  • 35 minutos
  • Nivel inicial
  • Sin instalación
localhost:8080/saludo
GET/saludo
NavegadorSpring Boot
{ "mensaje": "¡Hola!" }
200 OK ✓
01

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.

LECTURA GUIADA

Antes de escribir código, entendamos las decisiones

Podés leer los módulos en orden o abrir solamente el concepto que necesites repasar.

01
UN 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.
02
LA 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.
03
EL 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.
04
SPRING 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.
05
DISEÑ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.
06
ALCANCE 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.
02

SEGUÍ EL VIAJE

Una petición, paso a paso

NavegadorEl cliente inicia
GET /saludo
Spring BootProcesa el pedido
200 OK
{ }RespuestaTexto o JSON
03

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.

  1. @RestController hace que Spring detecte la clase como puerta de entrada web.
  2. @GetMapping("/saludo") relaciona la ruta con el método saludar().
  3. El valor retornado se convierte en el cuerpo de la respuesta HTTP.
JavaSaludoController.java
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!";
    }
}
04

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.

GET
http://localhost:8080/saludo

El servidor devuelve una cadena de texto.

RESPUESTA

La respuesta aparecerá acá.
Probá enviar la petición.