El objetivo de este proyecto integrador final es validar los conocimientos prácticos y técnicos referidos al desarrollo de APIs en el lenguaje de programación Java mediante Spring Boot aprendidos en el curso "Desarrollo de APIs en Java con Spring Boot" en TodoCode Academy.
A partir del relevamiento realizado por un analista funcional, se identificó la necesidad de las siguientes clases:
- Producto
- Venta
- Cliente
Cada venta posee una lista de productos y uno y solo un cliente asociado. Además, cada clase debe tener los siguientes atributos:
Long codigo_producto
String nombre
String marca
Double costo
Double cantidad_disponible
Long codigo_venta
LocalDate fecha_venta
Double total
List<Producto> listaProductos
Cliente unCliente
Long id_cliente
String nombre
String apellido
String dni
A partir del modelado, la dueña del bazar especificó los siguientes requerimientos:
- Métodos HTTP: GET, POST, DELETE, PUT
- Endpoints:
- Creación:
localhost:8080/productos/crear
- Lista completa de productos:
localhost:8080/productos
- Traer un producto en particular:
localhost:8080/productos/{codigo_producto}
- Eliminación:
localhost:8080/productos/eliminar/{codigo_producto}
- Edición:
localhost:8080/productos/editar/{codigo_producto}
- Creación:
- Métodos HTTP: GET, POST, DELETE, PUT
- Endpoints:
- Creación:
localhost:8080/clientes/crear
- Lista completa de clientes:
localhost:8080/clientes
- Traer un cliente en particular:
localhost:8080/clientes/{id_cliente}
- Eliminación:
localhost:8080/clientes/eliminar/{id_cliente}
- Edición:
localhost:8080/clientes/editar/{id_cliente}
- Creación:
- Métodos HTTP: GET, POST, DELETE, PUT
- Endpoints:
- Creación:
localhost:8080/ventas/crear
- Lista completa de ventas realizadas:
localhost:8080/ventas
- Traer una venta en particular:
localhost:8080/ventas/{codigo_venta}
- Eliminación:
localhost:8080/clientes/eliminar/{codigo_venta}
- Edición:
localhost:8080/clientes/editar/{codigo_venta}
- Creación:
- Método HTTP: GET
- Endpoint:
localhost:8080/productos/falta_stock
- Método HTTP: GET
- Endpoint:
localhost:8080/ventas/productos/{codigo_venta}
- Método HTTP: GET
- Endpoint:
localhost:8080/ventas/{fecha_venta}
- Método HTTP: GET
- Endpoint:
localhost:8080/ventas/mayor_venta
Nota: Tener en cuenta el patrón DTO para este escenario.