https://github.com/ddonamaria/test-auth
[Prueba técnica] - Microservicio de autenticación mediante token.
https://github.com/ddonamaria/test-auth
docker java junit maven openapi spring-boot spring-cloud
Last synced: 10 months ago
JSON representation
[Prueba técnica] - Microservicio de autenticación mediante token.
- Host: GitHub
- URL: https://github.com/ddonamaria/test-auth
- Owner: ddonamaria
- Created: 2025-03-14T10:38:32.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2025-03-18T01:18:37.000Z (about 1 year ago)
- Last Synced: 2025-05-19T01:12:51.231Z (11 months ago)
- Topics: docker, java, junit, maven, openapi, spring-boot, spring-cloud
- Language: Java
- Homepage:
- Size: 86.9 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🔐 Proyecto Test-Auth
## Descripción
Este proyecto es un microservicio desarrollado en Java 21 con Spring Boot 3.4.3, siguiendo una arquitectura hexagonal y Domain-Driven Design (DDD). Su propósito principal es exponer un endpoint para obtener un token de autenticación, utilizando internamente un cliente HTTP basado en Feign para consumir un servicio externo.
## Tecnologías Utilizadas
- **Java 21**
- **Maven**: Construcción y gestión de dependencias.
- **Spring Boot 3.4.3**
- **Spring Cloud OpenFeign**: Cliente HTTP.
- **API-First**: Desarrollo del código partiendo de la especificación OpenAPI.
- **Swagger/OpenAPI**: Documentación de API.
- **JUnit & Mockito**: Test unitarios.
- **Docker**: Contenerización.
## Arquitectura
```bash
com.ddu.authapp
├── application
│ ├── ports.out.TokenClientPort (Define los puertos de salida)
│ ├── usecases.TokenServiceImpl (Contiene los casos de uso)
│
├── domain
│ ├── TokenService
│
├── infrastructure
│ ├── adapters.in.api (Controladores REST)
│ ├── adapters.out (Clientes externos, Feign, etc.)
│ ├── config (Configuraciones de Swagger, Feign, etc.)
│ ├── exceptions (Manejo de errores globales)
│
├── resources
│ ├── application.yaml (Configuración de la aplicación)
│ ├── api/openapi-specification.yaml (Especificación OpenAPI)
```
## Clonado y ejecución del proyecto
### Clonado
- Clonar el repositorio:
```bash
git clone https://github.com/ddonamaria/test-auth
```
### Compilar proyecto
- Acceder a la raíz del proyecto:
```bash
cd test-auth
```
- Compilar el proyecto:
```bash
.\mvnw.cmd clean package
```
### Ejecutar proyecto java
- Ejecutar la aplicación:
```bash
java -jar target/book-filter-1.0.0.jar
```
### Ejecutar proyecto en contenedores
- Generación de la imagen docker del proyecto local:
```bash
docker build -t test-auth:1.0.0 .
```
- Ejecutar proyectos en contenedores con docker-compose:
```bash
docker-compose up
```
- Detener proyectos dockerizados:
```bash
docker-compose down
```
## Pruebas unitarias
Las pruebas unitarias están implementadas con JUnit y Mockito.
Para lanzar los test unitarios ejecutar el comando:
```bash
mvn test
```
## Endpoints
El servicio expone el siguiente endpoint a traves de swagger:
URL Swagger: http://localhost:8081/swagger-ui/index.html
**Endpoint**: (GET) /token
**Respuesta**
```json
{
"auth-vivelibre-token": "eyJhbGciOiJIUz...",
"date": "2025-02-27T14:00:00Z"
}
```