=======================
Servicio SOAP en Java utilizando Spring Boot para consumir la API REST de PokeAPI. Obtiene información sobre un Pokémon en tiempo real: habilidades, experiencia base, objetos retenidos, ID, nombre y áreas de encuentro.
El servicio guarda los detalles de cada solicitud en una base de datos e incluye análisis de calidad de código con SonarQube, pruebas unitarias, y pruebas con Cucumber.
Java 17 | Spring Boot
|
SOAP
| REST (WebClient)
|
H2
| Docker
|
SonarQube
| Github Actions
|
Cucumber
| JUnit 5
|
Mockito
|
- JDK 17 o superior
- Maven
- Docker (opcional si deseas dockerizar el proyecto)
Clona el repositorio:
git clone https://github.com/agustincperalta/PokemonService
cd PokemonServicemvn clean installmvn spring-boot:runO si prefieres usar Docker: Crea una imagen de PokemonService:
mvn clean install -Dimage
Y ejecuta la aplicacion
docker run -d -p 8080:8080 pokemon-serviceEl servicio ofrece los siguientes métodos SOAP para interactuar con la información de los Pokémon. Para obtener más detalles sobre cada operación y su ejecución, consulta la documentación en la wiki.
El servicio guarda las siguientes variables en la base de datos cada vez que se realiza una solicitud:
- IP de origen
- Fecha de la solicitud
- Método ejecutado
La consola de H2 está expuesta para que se puedan verificar los datos almacenados en la base de datos. Para acceder a la consola y ejecutar consultas, usa la siguiente URL y credenciales:
- URL de la consola: http://localhost:8080/h2-console
- JDBC URL:
jdbc:h2:mem:testdb - Usuario:
sa - Contraseña:
password
La información se almacena en la tabla REQUEST_LOG. Se puede ejecutar la siguiente consulta SQL para ver los registros:
SELECT * FROM REQUEST_LOG;El análisis de calidad de código está integrado mediante SonarQube utilizando SonarCloud, ejecutado automáticamente a través de GitHub Actions.
Puedes consultar los resultados del análisis y el coverage tanto en GitHub como directamente en SonarCloud haciendo clic en el siguiente badge:
Ejecuta las pruebas unitarias usando el siguiente comando:
mvn testEl proyecto incluye pruebas de integración con Cucumber. Para ejecutarlas:
mvn verifyConsulta los informes de Cucumber en este enlace.
main: Contiene el código listo para producción.develop: Rama donde se realiza la integración de las nuevas características.feature/<nombre-feature>: Se utiliza para el desarrollo de nuevas características.hotfix/<nombre-bugfix>: Se utiliza para la corrección de errores.
