Skip to content

walter02198/apiRestForoHubChallenge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ForoHub API

API REST para la gestión de tópicos en un foro educativo. Permite crear, listar, actualizar y eliminar tópicos con autenticación JWT.

🛠️ Tecnologías

  • Java 17
  • Spring Boot 3.3.1
  • Spring Data JPA (Hibernate)
  • Spring Security con JWT
  • MySQL (producción) / H2 (pruebas)
  • Flyway (migraciones de base de datos)
  • SpringDoc OpenAPI (documentación Swagger)
  • Lombok
  • Maven

📋 Requisitos

  • Java 17 o superior
  • Maven 3.x
  • MySQL 8.x (para entorno de producción)

🚀 Cómo ejecutar

# Clonar el repositorio
git clone https://github.com/usuario/apiRestForoHubChallenge.git
cd apiRestForoHubChallenge

# Compilar el proyecto
./mvnw clean compile

# Ejecutar la aplicación
./mvnw spring-boot:run

La API estará disponible en http://localhost:8080

📌 Endpoints

Autenticación

Método Ruta Descripción
POST /login Autentica usuario y retorna token JWT

Tópicos

Método Ruta Descripción
GET /topicos Lista tópico activos
POST /topicos Crea un nuevo tópico
PUT /topicos Actualiza un tópico existente
DELETE /topicos/{id} Elimina un tópico (lógico)

📖 Documentación API

La documentación interactiva de Swagger está disponible en:

🔐 Autenticación

La API utiliza autenticación JWT. Para acceder a los endpoints protegidos:

  1. Realizar una petición POST a /login con credenciales:
{
  "email": "usuario@ejemplo.com",
  "contrasena": "contraseña"
}
  1. Incluir el token JWT en las siguientes peticiones:
Authorization: Bearer <token_jwt>

📁 Estructura del proyecto

src/main/java/foro/hub/apiRest/
├── controller/           # Controladores REST
├── domain/              # Entidades y lógica de negocio
│   ├── topicos/         # Tópico
│   └── usuarios/        # Usuarios del sistema
├── infra/
│   ├── errores/        # Manejo global de excepciones
│   └── security/       # Configuración JWT y seguridad
└── ApiRestApplication.java

🗄️ Base de datos

El proyecto utiliza Flyway para migraciones. Las migraciones se encuentran en:

src/main/resources/db.migration/

Autor

Walter Valverde

About

Implementacion de challenge de Alura de un Foro Hub(api rest) mediante spring boot

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages