Foro Hub es una API RESTful desarrollada en Java 17+ con Spring Boot, que permite gestionar tópicos de un foro. Este proyecto está diseñado para aprender y practicar conceptos como persistencia de datos, seguridad, y buenas prácticas en el desarrollo backend.
- CRUD completo para gestionar tópicos.
- Seguridad implementada con JWT y Spring Security.
- Documentación de la API con SpringDoc OpenAPI.
- Gestión de la base de datos con Flyway para migraciones.
- Persistencia utilizando Spring Data JPA con MySQL.
- Lenguaje: Java 17+
- Frameworks:
- Spring Boot
- Spring Data JPA
- Spring Security
- Base de Datos: MySQL
- Herramientas de documentación: SpringDoc OpenAPI
- Gestión de dependencias: Maven
- Java 17+ instalado.
- MySQL configurado y corriendo.
- Maven instalado.
-
Clona el repositorio:
git clone https://github.com/tu-usuario/foro-hub.git cd foro-hub -
Configura la base de datos en
application.propertiesoapplication.yml:spring.datasource.url=jdbc:mysql://localhost:3306/foro_hub spring.datasource.username=tu_usuario spring.datasource.password=tu_contraseña
-
Ejecuta las migraciones de Flyway:
mvn flyway:migrate
-
Inicia la aplicación:
mvn spring-boot:run
-
Accede a la API en
http://localhost:8080.
| Método | Endpoint | Descripción |
|---|---|---|
| GET | /topics |
Lista todos los tópicos. |
| POST | /topics |
Crea un nuevo tópico. |
| GET | /topics/{id} |
Obtiene un tópico por su ID. |
| PUT | /topics/{id} |
Actualiza un tópico existente. |
| DELETE | /topics/{id} |
Elimina un tópico. |
| GET | /users |
Lista todos los autores. |
| POST | /auth/register |
Crea un nuevo autor. |
| POST | /courses |
Crea un nuevo curso. |
- Implementación de JSON Web Tokens (JWT) para autenticar las solicitudes.
- Rutas protegidas requieren un token válido en el encabezado
Authorization:Authorization: Bearer <tu_token>
La documentación de la API está disponible en:
- Swagger UI: http://localhost:8080/swagger-ui.html
- OpenAPI JSON: http://localhost:8080/v3/api-docs
Desarrollado por Alexis. Principiante en el mundo de la programación.