Este projeto é uma aplicação Spring Boot projetada para gerenciar dados de filmes. Ele utiliza Spring Boot juntamente com Spring Data JPA para persistência de dados e fornece endpoints RESTful para interação com os dados. O Swagger está integrado ao projeto para oferecer documentação da API e capacidades de teste de integração.
Para executar a aplicação Movie TexoIT, siga estas etapas:
-
Clonar o Repositório:
Clone o repositório do projeto de onde ele está hospedado.git clone https://github.com/lucasDaru/movies.git
-
Construir o Projeto:
Navegue até o diretório do projeto e construa o projeto usando o Maven.cd movie mvn clean package
-
Executar a Aplicação:
Após a construção ser bem-sucedida, execute a aplicação usando o plugin Spring Boot Maven.mvn spring-boot:run
-
Acessar o Swagger UI para Teste de Integração:
Depois que a aplicação estiver em execução, você pode acessar o Swagger UI em seu navegador da web, navegando até a seguinte URL:http://localhost:8080/swagger-ui/index.html
-
O Swagger UI fornece documentação interativa para os endpoints RESTful expostos pela aplicação, permitindo que você explore e teste as funcionalidades da API.
-
Controlador de Filmes (Movie Controller):
-
Importar Arquivo CSV:
/api/movie/import/csv
-
Controlador de Produtores (Producer Controller):
-
Obter Produtores com Intervalos Mínimos e Máximos:
/api/producer/min-max
A aplicação trabalha com dados de filmes fornecidos em formato CSV com as seguintes colunas:
year;title;studios;producers;winner
Os dados são mapeados para as seguintes tabelas do banco de dados:
- Filme (Movie)
- Produtor (Producer)
- Estúdio (Studio)
- Filme_Produtor (Movie_Producer)
- Filme_Estúdio (Movie_Studio)
Este método é crucial para encontrar os intervalos de anos mínimos e máximos entre as vitórias dos produtores de filmes.
-
Obtenção dos Produtores Vencedores: Primeiro, o método obtém todos os produtores de filmes vencedores utilizando o método
findAllByMovieWinner
do repositóriorepository
. -
Iteração sobre os Produtores: Em seguida, itera sobre cada produtor e seus respectivos filmes.
-
Filtragem e Ordenação dos Filmes: Para cada produtor, filtra os filmes que são vencedores e os ordena pelo ano de produção.
-
Cálculo dos Intervalos de Anos: Calcula os intervalos de anos entre as vitórias consecutivas de cada produtor.
-
Manutenção dos Intervalos Mínimos e Máximos: Mantém apenas os intervalos mínimos e máximos, armazenando-os em um mapa.
-
Construção do Mapa de Saída: Finalmente, constrói um mapa de saída onde associa a chave "min" aos intervalos mínimos e a chave "max" aos intervalos máximos e retorna esse mapa.
- Propósito: Obter os produtores com os maiores intervalos entre dois prêmios consecutivos, incluindo empates.
- Endpoint:
/api/producer/min-max
Este projeto está licenciado sob a Licença MIT. Sinta-se à vontade para modificar e distribuir o código para uso pessoal ou comercial.