Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

API-Rest-simple

  1. Instrucciones para ejecutar el proyecto

    • Requisitos

      • Java 21 LTS
      • Maven 3.9+
      • IDE recomendado: IntelliJ IDEA Community (opcional)
      • Opcional: navegador para Swagger UI
    • Pasos

      1. Clonar el repositorio:

        • git clone <URL_DEL_REPOSITORIO>
      2. Compilar y ejecutar con Maven:

        git clone <URL_DEL_REPOSITORIO>
        cd API-Rest-simple
      1. Acceder a la API:
         - Base URL: http://localhost:8080/api/solicitudes
         - Swagger UI: http://localhost:8080/swagger-ui.html Permite probar todos los endpoints (crear, listar, modificar solicitudes).
  2. Breve descripción de la arquitectura y decisiones técnicas

    1. Arquitectura

      Se utilizó la arquitectura en capas típica de Spring Boot:

      • model
      • DTO
      • sevice
      • controller/rest
      • repository (en este caso no lo he usado puesto que he usado datos en memoria)
  3. Decisiones técnicas

  • Spring Boot 3.3 + Java 21 LTS para compatibilidad y soporte LTS.
  • Maven para gestión de dependencias y compilación.
  • Lombok para reducir código repetitivo (@Data, @Builder, etc.).
  • Almacenamiento en memoria (Map<Long, Solicitud>) para simplificar el proyecto y evitar base de datos.
  • Validación de flujo de estados en el Service:
    • PENDIENTE → APROBADA / RECHAZADA
    • APROBADA → CANCELADA
  • Se lanza ResponseStatusException con HTTP 400 si la transición es inválida.
  • Swagger (springdoc-openapi) para documentación y pruebas interactivas de la API.
  • DTO (ModificarDTO, SolicitudDTO) para separar los datos de entrada de la entidad de dominio, mejorando claridad y escalabilidad.
  1. Mejoras o extensiones con más tiempo
  • Funcionales

    • Persistencia real en base de datos (H2, PostgreSQL, MySQL) usando Spring Data JPA.
    • Autenticación y autorización por roles (clientes / gestores) con Spring Security.
    • Validaciones más completas en la creación de solicitudes (importe mínimo, formato de DNI/NIE).
    • Implementar filtros de búsqueda por estado, divisa o rango de importe.
    • Exportación de solicitudes a CSV / PDF.
  • Técnicas / Arquitecturales

    • Separar claramente DTOs de respuestas y requests para la API.
    • Implementar tests unitarios y de integración para servicios y controladores (JUnit + Mockito).
    • Añadir capa de excepciones global (@ControllerAdvice) para estandarizar respuestas de error.
    • Configuración de profiles de Spring para desarrollo, test y producción.
    • Posible refactor a arquitectura hexagonal o limpia para proyectos más grandes.

About

API REST sencilla para gestionar solicitudes de préstamos personales

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages