Certifique-se de selecionar as dependências Spring WebFlux e Spring Data Reactive MongoDB durante a configuração inicial do projeto.
Crie uma classe News
com os seguintes campos: id
, title
, content
, author
, publishDate
, category
, viewCount
, commentList
.
Crie um repositório, NewsRepository
, estendendo a interface ReactiveCrudRepository
.
Crie uma classe de serviço, NewsService
, que usa NewsRepository
para fornecer métodos como findAllNews
, findNewsByCategory
, findNewsByAuthor
, findNewsByKeyword
.
Crie um controlador, NewsController
, que usa NewsService
para expor endpoints e retornar os dados como um fluxo de eventos Server-Sent Events (SSE).
Escreva testes unitários e de integração usando JUnit e Mockito.
Use Spring Security para adicionar autenticação e autorização.
Adicione suporte para filtrar notícias por categorias, autor ou palavra-chave.
Implemente um sistema para classificar as notícias com base em critérios específicos (por exemplo, mais recentes, mais lidas, mais comentadas).
Utilize PagingAndSortingRepository
para adicionar suporte a paginação e classificação de dados.
Crie uma nova entidade Comment
com campos como id
, newsId
, author
, content
, date
.
Use a API de notícias do NewsAPI.org ou outra API de sua escolha. Use o cliente web reativo do Spring.
Crie um arquivo Dockerfile na raiz do seu projeto para criar uma imagem Docker da sua aplicação.
Adicione Swagger para documentar a API Geek News.