Skip to content

Ejemplo moderno de API REST con Spring Boot, usando DTOs, MapStruct y Spring Data JPA. Ideal para aprender buenas prácticas en Java.

Notifications You must be signed in to change notification settings

Ignacio-Molina-0804/DTO-Patron

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 DTO Example API

Bienvenido a DTO Example, una API REST moderna construida con Spring Boot, que demuestra el uso de Data Transfer Objects (DTO), MapStruct para el mapeo eficiente de datos y Spring Data JPA para la persistencia. ¡Ideal para aprender buenas prácticas en arquitectura de aplicaciones Java!


🛠️ Tecnologías Principales

  • Spring Boot 3.5.4
  • Spring Data JPA
  • MapStruct
  • Lombok
  • H2 Database (en memoria)
  • Maven

🗂️ Arquitectura del Proyecto

src/
 └── main/
     └── java/
         └── com/example/DTO/
             ├── entity/         # Entidades JPA (Persona, Direccion)
             ├── dto/            # Data Transfer Objects (PersonaDireccionDTO)
             ├── mapper/         # MapStruct mappers (PersonaMapper)
             ├── repository/     # Spring Data JPA repositories (PersonaRepository)
             ├── service/        # Lógica de negocio (PersonaService)
             └── controller/     # Controladores REST (PersonaController)

📦 ¿Cómo Funciona?

  • Entidad:
    Persona y Direccion son modelos persistidos en la base de datos.

  • DTO:
    PersonaDireccionDTO es el objeto que viaja entre el backend y el frontend, ocultando detalles internos.

  • Mapper:
    PersonaMapper convierte automáticamente entre entidades y DTOs usando MapStruct.

  • Repository:
    PersonaRepository accede a los datos con métodos listos para usar.

  • Service:
    PersonaService contiene la lógica de negocio y orquesta el flujo de datos.

  • Controller:
    PersonaController expone los endpoints REST para interactuar con la app.


🔗 Endpoints REST

Método Endpoint Descripción
GET /api/personas Lista todas las personas (DTO)
POST /api/personas Crea una nueva persona (con dirección)

🧑‍💻 Ejemplo de Uso

Crear una Persona

POST /api/personas
{
  "nombre": "Juan",
  "apellido": "Pérez",
  "dni": "12345678",
  "direccion": {
    "calle": "Calle Falsa 123",
    "provincia": "Buenos Aires"
  }
}

Obtener Personas

GET /api/personas
[
  {
    "nombre": "Juan",
    "apellido": "Pérez",
    "dni": "12345678",
    "calle": "Calle Falsa 123",
    "provincia": "Buenos Aires"
  }
]

▶️ Cómo Ejecutar

  1. Clona el repositorio
  2. Ejecuta:
    • Linux/Mac: ./mvnw spring-boot:run
    • Windows: mvnw.cmd spring-boot:run
  3. Accede a: http://localhost:8080/api/personas

💡 Notas

  • La base de datos H2 es en memoria: los datos se borran al reiniciar la app.
  • El mapeo entre entidades y DTOs es automático gracias a MapStruct.
  • Puedes modificar y extender fácilmente la estructura para tus propios proyectos.

📚 Recursos Útiles


¡Explora el código, aprende

About

Ejemplo moderno de API REST con Spring Boot, usando DTOs, MapStruct y Spring Data JPA. Ideal para aprender buenas prácticas en Java.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages