Skip to content

Este proyecto consiste en un microservicio que se encarga de la gestión de la mensajería física de paquetes. Está desarrollado en Java 11 con el framework Spring Boot 2.7.11 y cuenta con conexión a una base de datos MySQL

Notifications You must be signed in to change notification settings

Jaime-U-Lopez/MicroServicioMensajeriaFisica

Repository files navigation

Microservicio de Mensajeria ULTRA FAST 📦

Este proyecto consiste en un microservicio que se encarga de la gestión de la mensajería física de paquetes. Está desarrollado en Java 11 con el framework Spring Boot 2.7.11 y cuenta con conexión a una base de datos MySQL.

El microservicio proporciona diferentes operaciones CRUD para las entidades de Paquete, Cliente Empleado, implementadas utilizando el patrón de diseño DAO para Repository y siguiendo los principios SOLID. Además, se han desarrollado querys personalizados de JPA para mejorar la eficiencia y la velocidad de acceso a la base de datos.

El proyecto también incorpora patrones de diseño como de Chain of Responsibility, Dto, Dao, Template design.

El patrón Chain of Responsibility se utiliza para la validación de entradas, lo que permite pasar solicitudes a través de una cadena de manejadores, asegurando que las entradas sean válidas antes de que se realice cualquier operación de almacenamiento en la base de datos.

En resumen, este microservicio de mensajería física de paquetes es una solución eficiente y escalable para la gestión de la mensajería física de paquetes, con operaciones CRUD, querys personalizados de JPA, patrones de diseño, principios SOLID.

Para acceder a la documentación de la API 💻, haz clic en enlace Swagger

👷 Tecnologias utlizadas

  • Java 11
  • Spring boot 2.7.11
  • Con concexión a la base de datos de MYSQL ( com.mysql:mysql-connector-j:8.0.32)
  • Con Data Jpa 2.7.11
  • Con Junit 4 version 2.7.11
  • Mokito para pruebas unitarias, como interceptor y emulador de base de datos
  • Con Swagger 3.0.0
  • Queryz personalizados de Jpa
  • Spring Security
  • Inyección de dependencias
  • Maven como gestor de dependencias
  • Patrones DTO y Diseño DAO para Repository

Patron de comportamiento Chain of Responsibility

Chain of Responsibility es un patrón de diseño de comportamiento que te permite pasar solicitudes a lo largo de una cadena de manejadores validando sus de entradas.

🏛 Entidades :

  • Customer
  • Employeer
  • Package
  • SendPackage

🏛 Flujo del proceso :

image

🌐 Diagrama de entidades :

diagrama de clases

🌐 Diagrama de carpetas :

ProyectoIntegradorBack2 drawio (7)

Peticiones HTTP

Para Package :

Entity EndPoint HTTP
packages /mensajeria/v1/packages GET
packages /mensajeria/v1/packages/{id} GET
packages /mensajeria/v1/packages POST
packages /mensajeria/v1/packages PUT
packages /mensajeria/v1/packages/{id} DELETE
Solicitud Http Post en Package :
{
  "id": 0,
  "pesoPaquete": 0,
  "typePackage": "GRANDE",
  "valorPaquete": 0
}

Para Customer :

Entity EndPoint HTTP
Customer /mensajeria/v1/customers GET
Customer /mensajeria/v1/customers/{id} GET
Customer /mensajeria/v1/customers POST
Customer /mensajeria/v1/customers PUT
Customer /mensajeria/v1/customers/{id} DELETE
Solicitud Http Post en Custumer:
{
	"nombre": "Juan",
	"apellido": "Pérez",
	"email": "juan.perez@gmail.com",
	"telefono": "555-4321"
}

Para Employee :

Entity EndPoint HTTP
Employee /mensajeria/v1/employees GET
Employee /mensajeria/v1/employees/{id} GET
Employee /mensajeria/v1/employees POST
Employee /mensajeria/v1/employees PUT
Employee /mensajeria/v1/employees/{id} DELETE

Solicitud Http Post en un employee:

{
	"cedula": 1212,
	"name": "javier enrique",
	"lastName": "urgo",
	"numeroCelular": 1212121,
	"correoElectronico": "pedro@string.com",
	"direccionResidencia": "los colores",
	"ciudad": "medellin",
	"antiguedad": "2022-04-17",
	"tipoSangreRH": "o+",
	"typeEmpleoyer": "CONTADOR"
}

Para Servicio de Mensajeria :

Entity EndPoint HTTP
SendPackage /mensajeria/v1/SendPackage GET
SendPackage /mensajeria/v1/employees/{id} GET
SendPackage /mensajeria/v1/SendPackage POST
SendPackage /mensajeria/v1/SendPackage PUT
SendPackage /mensajeria/v1/SendPackage/{id} DELETE
Solicitud Http Post en para Enviar un paquete:
{
  "cedulaCliente": 3254330,
  "celular": 3099989870,
  "ciudadDestino": "Medellin",
  "ciudadOrigen": "Bogota",
  "direccionDestino": "los andes amedro",
  "nombrePersonaRecibe": "san juaquin",
  "pesoPaquete": 50,
  "valorPaquete": 30000
}

About

Este proyecto consiste en un microservicio que se encarga de la gestión de la mensajería física de paquetes. Está desarrollado en Java 11 con el framework Spring Boot 2.7.11 y cuenta con conexión a una base de datos MySQL

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages