Este proyecto implementa una API REST para realizar operaciones CRUD sobre los tópicos de un foro web. Es parte de un desafío que involucra el desarrollo de una API completa utilizando las mejores prácticas.
- Lenguaje: Java 17
- Framework: Spring Boot
- Autenticación: JWT Token con Spring Security
- Persistencia: Spring Data JPA con base de datos MySQL
- Documentación: Spring Docs
- Dependencias: Maven
- Utilidades:
- Lombok
- Validation
Este endpoint permite a los usuarios autenticarse para obtener acceso a la API.
Body JSON:
{
"login": "emmanuel",
"clave": "123456"
}Registra un nuevo tópico en el foro.
Headers:
Authorization: Bearer <JWT>
Body JSON:
{
"usuario_id": "1",
"titulo": "Hacer un Api Rest",
"mensaje": "Como puedo hacer un api rest en spring boot en java",
"nombredelcurso": "Alura Framework Spring boot"
}Obtiene una lista de todos los tópicos almacenados.
Obtiene los detalles de un tópico específico.
Actualiza un tópico específico.
Headers:
Authorization: Bearer <JWT>
Body JSON:
{
"titulo": "Actualizar título",
"mensaje": "Nuevo mensaje sobre el tópico",
"nombredelcurso": "Nuevo curso"
}Elimina un tópico específico de forma física en la base de datos.
Headers:
Authorization: Bearer <JWT>
-
Clonar el repositorio:
git clone <URL_DEL_REPOSITORIO> cd foro-alura-challenger
-
Configurar la base de datos: Asegúrate de tener una instancia de MySQL corriendo y modifica el archivo
application.propertiesoapplication.ymlcon tus credenciales y configuración:spring.datasource.url=jdbc:mysql://localhost:3306/foro spring.datasource.username=tu_usuario spring.datasource.password=tu_contraseña
-
Compilar y ejecutar:
mvn clean install mvn spring-boot:run
- Asegúrate de usar un cliente HTTP (como Postman o cURL) para probar los endpoints.
- Los tokens JWT deben ser enviados en el encabezado
Authorizationcon el formato:Bearer <JWT>.
- Nombre: [Tu nombre o alias]
- Contacto: [Tu email o redes sociales]