1️⃣ Cliente
-
Qué es: Es quien hace la solicitud a tu aplicación REST.
-
Ejemplos: Un navegador web, una app móvil, Postman, u otra aplicación que consuma tu API.
-
Función: Envía peticiones HTTP (GET, POST, PUT, DELETE) y recibe respuestas JSON o XML.
-
Analogía: Es como un cliente que pide un producto en una tienda.
2️⃣ Controlador (Controller)
-
Qué es: Es la capa que recibe las solicitudes del cliente.
-
Función:
-
Escucha rutas específicas (URLs) de la API.
-
Llama al servicio para realizar la lógica del negocio.
-
Devuelve la respuesta al cliente.
-
-
Ejemplo:
-
Aquí, cuando el cliente pide
/usuarios/1
, el controlador llama al servicio para obtener el usuario con ID 1.
3️⃣ Modelo (Model)
-
Qué es: Representa los datos de tu aplicación.
-
Función:
-
Define la estructura de tus objetos, que usualmente se mapean a una base de datos.
-
Puede incluir clases como
Usuario
,Producto
,Pedido
, etc.
-
-
Ejemplo:
-
Es básicamente tu "molde" de datos.
4️⃣ Servicio (Service)
-
Qué es: La capa donde resides la lógica del negocio.
-
Función:
-
Procesa información.
-
Valida datos.
-
Decide qué hacer con los datos antes de enviarlos al repositorio o al controlador.
-
-
Ejemplo:
-
Es como el “cerebro” que decide cómo manejar la información.
5️⃣ Repositorio (Repository)
-
Qué es: La capa que interactúa directamente con la base de datos.
-
Función:
-
Guardar, actualizar, eliminar y buscar datos.
-
Normalmente usa un ORM como Hibernate en Java.
-
-
Ejemplo:
-
Aquí, no necesitas escribir SQL directamente; Spring Data lo hace por ti.
🔄 Cómo fluye todo junto en REST
-
Cliente hace una petición (GET/POST/PUT/DELETE).
-
Controlador recibe la petición y llama al servicio.
-
Servicio aplica la lógica de negocio y llama al repositorio si necesita datos de la base.
-
Repositorio obtiene o guarda los datos en la base.
-
Servicio procesa los resultados y los devuelve al controlador.
-
Controlador envía la respuesta al cliente en JSON o XML.