- Java
- Maven - Manejador de dependencias
- Spring Initializer
- Lombok - Code automator
- FlyWay - Database versioning
- MySQL - Database
- JWT Token - Login authentication
- OpenAPI - Spring documentation
Este proyecto es parte de un curso dictado por Alura y Oracle Next Education
Esta API permite la comunicación entre front-end y la base de datos. Mediante distintos métodos, se pueden crear, obtener, editar y eliminar usuarios, tópicos, categorías y respuestas. Cada usuario debe acceder mediante su username y password y utilizar el token obtenido para realizar las distintas solicitudes.
- Usuarios
- username y email únicos
- roles: ADMIN, USER, VIEWER
- Tópicos
- vinculada al usuario que la crea y a la categoría que pertenece
- registro de fecha de creación y de última actualización
- status: OPEN, CLOSED, DELETED
- al ser una de sus respuestas marcadas como solución, su status pasa a ser CLOSED
- Respuestas
- vinculada al usuario que la crea y el tópico al que responde
- registro de fecha de creación y de última actualización
- solo una respuesta por tópico puede ser marcada como solución
- Cada usuario tiene un rol asignado, estos roles deben limitar el acceso de los mismos a los distintos métodos disponibles. Así, un ADMIN tendría acceso a todos los métodos, un USER sólo podría editar el propio usuario, sus propios tópicos y respuestas y tener acceso de vista a los demás, y un VIEWER sólo tendría acceso a los métodos de consulta.