El foro alura es un lugar donde todos los alumnos de la plataforma alura pueden colocar sus preguntas sobre determinados cursos, este mágico lugar está lleno de mucho aprendizaje y de colaboración entre alumnos, profesores y moderadores.
Ya sabemos para que sirve el foro y sabemos cómo se ve, pero ¿sabemos cómo funciona por detrás? Es decir ¿dónde se almacenan las informaciones? ¿cómo se tratan esos datos para que se relacione un tópico con una respuesta, o como se relacionan los usuarios con las respuestas de un tópico?
Ese es nuestro desafío, vamos a replicar a nivel de back end este proceso, y para eso crearemos una API REST usando Spring.
Nuestra API va a centrarse específicamente en los tópicos, y debe permitir a los usuarios:
Registro de un nuevo tópico La API debe tener un endpoint para el registro de nuevos tópicos y debe aceptar solicitudes POST para el URI /topicos.
Los datos del tópico( titulo, mensaje, autor y curso) deben enviarse en el cuerpo de la solicitud, en formato JSON.
Reglas del negocio Todos los campos son obligatorios. La API no debe permitirlos registros duplicados (que contengan el mismo el mismo título y mensaje)
La API debe tener un endpoint para la lista de todos los tópicos y debe aceptar solicitudes GET para el URI /topicos
Los datos del tópico (titulo, mensaje, fecha de creación, estatus autor y curso) deben devolverse en el cuerpo de la respuesta, en formato JSON.
La API debe tener un endpoint para la lista de todos los tópicos y debe aceptar solicitudes GET para el URI /topicos/{id}
Los datos del tópico (titulo, mensaje, estatus, autor y curso) deben devolverse en el cuerpo de la respuesta, en formato JSON.
La API debe tener un endpoint para el registro de nuevos tópicos y debe aceptar solicitudes PUT para el URI /topicos/{id}
Observación: Sí no existe el tema a actualizar, regresará un mensaje de error.
La API debe tener un endpoint para la eliminación de tópicos y debe aceptar requisiciones DELETE para el URI /topicos/{id}
Observación: Al eliminar un tema regresará un 204 Not Content afirmando la desactivación del tema
Recuerda que esto es un desafio opcional y que puedes hacer otras implementaciones incluso si no están siendo sugeridas aqui ⭐
Implementa otras rutas en tu aplicación
Para nuestro foro estar completo deberíamos tener otras rutas o endopints que nos permitirán crear, listar, actualizar y eliminar otras informaciones además de los tópicos como:
/usuario
/respuestas
También están implementadas las entradas para /Usuarios (Users), /Answers (Respuestas), /Courses (Cursos):
/Respuestas
/Cursos
Desarrollador 😉