Projeto em WebFlux para a fase 4 da Pós-Tech FIAP
# VideoController
## POST /video/upload
Carrega um arquivo de vídeo.
### Request
```multipart/form-data
file: [binary]
video: {
"title": "string",
"description": "string",
...
}
Recupera uma lista de vídeos com base no filtro fornecido.
{
"filter": "string"
}
[
{
"id": "string",
"title": "string",
"description": "string",
...
},
...
]
Recupera um vídeo pelo seu ID.
{
"id": "string",
"title": "string",
"description": "string",
...
}
Deleta um vídeo pelo seu ID.
Atualiza um vídeo.
{
"id": "string",
"title": "string",
"description": "string",
...
}
Esta rota é usada para atualizar um vídeo.
Parâmetros da solicitação:
VideoDTO
: Objeto que contém as informações atualizadas do vídeo.
Resposta:
Retorna um Mono
que representa o resultado da operação de atualização.
# UserController
## POST /user
Cria um novo usuário.
### Request
```json
{
"name": "string",
"email": "string",
"password": "string"
}
{
"id": "string",
"name": "string",
"email": "string"
}
Recupera um usuário pelo seu ID.
{
"id": "string",
"name": "string",
"email": "string"
}
Atualiza um usuário pelo seu ID.
{
"name": "string",
"email": "string",
"password": "string"
}
{
"id": "string",
"name": "string",
"email": "string"
}
Deleta um usuário pelo seu ID.
Adiciona um vídeo aos favoritos do usuário.
{
"id": "string",
"name": "string",
"email": "string",
"favorites": ["videoId1", "videoId2", ...]
}
Recupera vídeos recomendados para um usuário.
[
{
"id": "videoId1",
"title": "videoTitle1",
"description": "videoDescription1",
...
},
...
]
docker-compose -f mongodb_composer.yml up -d
./mvnw clean install
./mvnw spring-boot:run
- Spring Boot Starter Data MongoDB Reactive: Para suporte reativo ao MongoDB
- Spring Boot Starter WebFlux: Para aplicações reativas.
- Spring Boot Starter Test: Para testar aplicações SpringBoot.
- Project Lombok: Para redução de código boilerplate.
- MapStruct: Para mapeamentos de objetos.
O MonogDB é configurado no arquivo application.properties
do diretório "src/main/resources".