O projeto Apollo70 Filmes consiste em uma aplicação de uma locadora de filmes. A aplicação é dividida em microserviços que detém as funcionalidades necessárias para o usuário ter acesso a um catálogo de filmes disponíveis para compra e alocação.
Além do microserviço User
há outros dois responsáveis pelo gerenciamento dos filmes e a gravação do histórico de compra e alocação, respectivamente:
O Movie-Manager
tem conexão com a API externa The Movie DB que disponibiliza acesso a dados de filmes, atores e programas de TV. Já o Allocation-History
basicamente pega os dados de compra/alocação de filmes e salva isso em um banco de dados Mongo.
Se você deseja saber mais sobre os microserviços Movie-Manager e Allocation-History acesse seus respectivos repositórios, aqui, nesse repositório iremos falar mais sobre o microserviço User que é a principal aplicação do projeto, sendo ela quem detém acesso aos outros microserviços e suas funcionalidades.
Além dos microserviços informados acima o User
também detém acesso a um Gateway de pagamento que é responável por simular a compra e/ou alocação dos filmes que o usuário deseja.
Método | Caminho | Descrição |
---|---|---|
POST |
/api/user | Cadastra um novo usuário. |
GET |
/api/user | Busca todos os usuários cadastrados. |
GET |
/api/user/{id} | Busca o registro de um usuário. |
PATCH |
/api/user/{id} | Atualiza o registro de um usuário. |
PATCH |
/api/user/account{id} | Define o registro de um usuário como bloqueado. Usuários com registro bloqueado não podem se autenticar e consequentemente não podem alocar ou comprar filmes. |
GET |
/api/movie-manager/movie-search/?{filtros} | Busca por filmes com os filtros de nome, gênero, stream, data de lançamento e atores. |
GET |
/api/movie-manager/{id}/recommendations | Busca filmes recomendados conforme o id do filme passado como parâmetro. |
POST |
/api/auth/signin | Faz a autenticação do usuário e retorna um token de acesso. O usuário só poderá efetuar a alocação/compra de um filme se ele for autenticado. |
GET |
/api/auth/refresh/{email} | Faz o refresh do token de acesso. |
POST |
/api/movie-payment | Faz uma requisição de pagamento. |
PUT |
/api/allocation-history/{userId} | Busca o histórico de um determinado usuário. |
- Spring Validation
- Spring Web
- Spring AMQP
- Spring OpenFeign
- Spring Security
- Spring Fox
- ModelMapper
- Lombok
- MongoDB
- Swagger
- JWT
Para saber mais acesse a Documentação