Esta aplicación es una API RESTful desarrollada utilizando Spring Boot 3 y Java 17.
Su propósito es gestionar información sobre equipos de fútbol, permitiendo realizar operaciones CRUD (Crear, Leer, Actualizar y Eliminar) sobre los equipos.
En root del proyecto se encuentra una carpeta coleccion_postman
con la colección para realizar pruebas en esta herramienta.
Alternativa: al levantar el proyecto si acceden a http://localhost:8080/docs
tendrán disponible un swagger con los mismos endpoints.
Pasos para construir imagen e iniciar contenedor en docker:
mvn package
docker compose build
docker compose up
Pasos para obtener y ver el reporte de cobertura de test:
mvn clean test site
En la carpeta \target\site\jacoco\
se encontrara el archivo index.html
con el informe de combertura de los servicios.
La API proporciona las siguientes funcionalidades:
- Endpoint:
GET /equipos
- Descripción: Devuelve la lista de todos los equipos de fútbol registrados.
- Respuesta Exitosa (200 OK):
[ { "id": 2, "nombre": "FC Barcelona", "liga": "La Liga", "pais": "España" }, ... ]
- Endpoint:
GET /equipos/{id}
- Descripción: Devuelve la información del equipo correspondiente al ID proporcionado.
- Respuesta Exitosa (200 OK):
{ "id": 2, "nombre": "Barcelona FC", "liga": "La Liga", "pais": "España" }
- Endpoint:
GET /equipos/buscar?nombre={valor}
- Descripción: Devuelve la lista de equipos cuyos nombres contienen el valor proporcionado en el parámetro de búsqueda.
- Respuesta Exitosa (200 OK):
[ { "id": 1, "nombre": "Real Madrid", "liga": "La Liga", "pais": "España" }, ... ]
- Endpoint:
POST /equipos
- Descripción: Permite crear un nuevo equipo.
- Cuerpo de la Petición:
{ "nombre": "Nuevo Equipo FC", "liga": "Nueva Liga", "pais": "Nuevo País" }
- Respuesta Exitosa (201 Created):
{ "id": 26, "nombre": "Nuevo Equipo FC", "liga": "Nueva Liga", "pais": "Nuevo País" }
- Endpoint:
PUT /equipos/{id}
- Descripción: Actualiza la información de un equipo existente.
- Cuerpo de la Petición:
{ "nombre": "Nuevo Nombre", "liga": "Nueva Liga", "pais": "Nuevo País" }
- Respuesta Exitosa (200 OK):
{ "id": 1, "nombre": "Nuevo Nombre", "liga": "Nueva Liga" }
- Endpoint:
DELETE /equipos/{id}
- Descripción: Elimina un equipo existente.
- Respuesta Exitosa (204 No Content): Sin contenido.
La API implementa manejo de excepciones, devolviendo códigos de estado HTTP apropiados:
- 401 Unauthorized: Si la autenticación falla.
- 404 Not Found: Si no encuentra el recurso solicitado.
- 400 Bad Request: Si la solicitud no es correcta.
La API utiliza JWT (Sprig Security) para la autenticación.
Se debe enviar una petición POST
a /auth/login
con el siguiente cuerpo para autenticarse:
{
"username": "test",
"password": "12345"
}
- Java 17
- Spring Boot 3
- Spring JPA
- Spring Security
- Springdoc - Open API
- Base de datos H2 - en memoria
- Docker (opcional para la dockerización)
- Clona el repositorio.
- Configura el entorno de desarrollo, IDE de preferencia.
- Ejecuta la aplicación. "# api-gestion-equipos-futbol" "# api-gestion-equipos-futbol"