Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/darkmtrance/reto-backend-bpi
https://github.com/darkmtrance/reto-backend-bpi
docker java microservices oauth2 spring-boot webflux
Last synced: 11 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/darkmtrance/reto-backend-bpi
- Owner: darkmtrance
- Created: 2024-07-14T20:09:08.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2024-07-14T20:19:15.000Z (7 months ago)
- Last Synced: 2024-11-17T01:10:11.972Z (2 months ago)
- Topics: docker, java, microservices, oauth2, spring-boot, webflux
- Language: Java
- Homepage:
- Size: 248 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Reto Backend API
Este proyecto es un sistema de microservicios basado en Spring Boot 3.2.7 con Java 17 y Spring WebFlux. El sistema incluye los siguientes microservicios:
- **ms-cliente**: Maneja la información de los clientes.
- **ms-producto**: Maneja la información de los productos financieros.
- **oauth-server**: Servidor de autenticación y autorización utilizando OAuth2.
- **spring-cloud-gateway**: Gateway que maneja el enrutamiento y autenticación centralizada.## Requisitos
- Java 17
- Maven 3.8.1+
- Docker (opcional, para despliegue de contenedores)## Arquitectura
La arquitectura del proyecto está basada en microservicios y utiliza Spring Cloud Gateway para enrutamiento y balanceo de carga, y OAuth2 para la autenticación y autorización.
![Arquitectura](docs/arquitectura.gif)
## Servicios
### ms-cliente
Microservicio encargado de gestionar la información de los clientes.
#### Endpoints
- `GET /clientes/buscar/{id}`: Obtiene la información de un cliente por ID.
### ms-producto
Microservicio encargado de gestionar la información de los productos financieros.
#### Endpoints
- `GET /productos/{clienteId}`: Obtiene todos los productos de un cliente por su ID.
### oauth-server
Servidor de autenticación y autorización utilizando OAuth2.
#### Endpoints
- `POST /oauth/token`: Obtiene un token de acceso.
- `GET /oauth/authorize`: Autoriza una solicitud de acceso.### spring-cloud-gateway
Gateway para manejar el enrutamiento y la autenticación centralizada.
#### Endpoints
- `GET /{service}/{endpoint}`: Enruta las solicitudes a los microservicios correspondientes.
## Configuración
### OpenAPI Swagger
Cada microservicio tiene documentación Swagger disponible en la siguiente URL:
- `http://{host}:{port}/swagger-ui.html`
### Ejecución
Para ejecutar cada microservicio, navega al directorio del microservicio y utiliza el siguiente comando de Maven:
```bash
mvn spring-boot:run