ForoAPI es una API RESTful desarrollada con Spring Boot para gestionar un foro en línea. La API permite realizar operaciones CRUD (Crear, Leer, Actualizar, Eliminar) sobre los recursos principales del foro, que incluyen tópicos y usuarios.
- Gestión de Tópicos: Crear, listar, actualizar y eliminar tópicos.
- Gestión de Usuarios: Crear, listar, actualizar y eliminar usuarios.
- Autenticación y Seguridad: Implementación de autenticación utilizando Spring Security y JSON Web Tokens (JWT).
- Base de Datos: Configuración para utilizar H2 Database.
- Documentación de la API: Integración con Springdoc OpenAPI UI para documentar los endpoints.
- Java 17 o superior
- Maven
-
Clona el repositorio:
-
Compila el proyecto utilizando Maven:
./mvnw clean install
Para ejecutar la aplicación, utiliza el siguiente comando:
./mvnw spring-boot:run
La aplicación estará disponible en http://localhost:8080
.
- Listar Tópicos:
GET /topicos
- Crear Tópico:
POST /topicos
- Obtener Tópico:
GET /topicos/{id}
- Actualizar Tópico:
PUT /topicos/{id}
- Eliminar Tópico:
DELETE /topicos/{id}
- Listar Usuarios:
GET /usuarios
- Crear Usuario:
POST /usuarios
- Obtener Usuario:
GET /usuarios/{id}
- Actualizar Usuario:
PUT /usuarios/{id}
- Eliminar Usuario:
DELETE /usuarios/{id}
La seguridad se maneja utilizando Spring Security y JWT. Para acceder a los endpoints protegidos, es necesario autenticarse y obtener un token JWT.
-
Login:
POST /login
El cuerpo de la solicitud debe contener los campos
username
ypassword
. Si las credenciales son correctas, la respuesta incluirá un token JWT.
Se utiliza H2 Database para el almacenamiento de datos. La configuración de la base de datos se encuentra en el archivo src/main/resources/application.properties
.
Para ejecutar las pruebas, utiliza el siguiente comando:
./mvnw test
python ForoAPI-Test01.py
Revisa el log foroapi-test.log para comprobar que todo esta bien.
Las contribuciones son bienvenidas. Por favor, abre un issue para discutir cualquier cambio que quieras realizar.