Esta API fornece informações sobre os filmes indicados e vencedores do Golden Raspberry Awards.
Node.js | |
JavaScript | |
Docker | |
SQLite | |
Vitest |
Nodejs na versão 22.11.0
ou
Docker e Docker Compose
Use o repositório do github para clonar/baixar/instalar o projeto Golden Raspberry - Github.
git clone https://github.com/jiovanmichel/golden-raspberry-api
ou
Download zip do projeto e descompactar
cd golden-raspberry-api/app
npm install pm2 -g
npm install
npm run start
API disponível em http://localhost:8000
npm run test
cd golden-raspberry-api
docker-compose up -d
API disponível em http://localhost:8000
docker-compose -f docker-compose-test.yaml up -d
-
GET http://localhost:8000/api/movies
Lista todos os filmes
resposta
[ { "id": 1, "title": "Movie Title", "producers": "Producers Name", "studios": "Studios Name", "year": 2021, "winner": "yes" }, ]
-
GET http://localhost:8000/api/movies/1
Obtém informações de um filme específico pelo seu ID.
Parâmetros:
- id (id do filme)
resposta
{ "id": 1, "title": "Movie Title", "producers": "Producers Name", "studios": "Studios Name", "year": 2021, "winner": "yes" },
-
POST http://localhost:8000/api/movies
Cria um novo filme
body da requisição
{ "title": "Movie Title", "producers": "Producers Name", "studios": "Studios Name", "year": 2021, "winner": "yes" },
resposta
{ "id": 2, "title": "Movie Title", "producers": "Producers Name", "studios": "Studios Name", "year": 2021, "winner": "yes" },
-
PUT http://localhost:8000/api/movies/1
Atualiza completamente as informações de um filme
Parâmetros:
- id (id do filme)
body da requisição
{ "title": "Updated Movie Title", "producers": "Updated Producers Name", "studios": "Updated Studios Name", "year": 2021, "winner": "yes" },
resposta
{ "id": 1, "title": "Updated Movie Title", "producers": "Updated Producers Name", "studios": "Updated Studios Name", "year": 2021, "winner": "yes" },
-
PATCH http://localhost:8000/api/movies/1
Atualiza parcialmente as informações de um filme
Parâmetros:
- id (id do filme)
body da requisição
{ "title": "Updated Movie Title" },
resposta
{ "id": 1, "title": "Updated Movie Title", "producers": "Producers Name", "studios": "Studios Name", "year": 2021, "winner": "yes" },
-
DELETE http://localhost:8000/api/movies/1
Deleta um filme pelo ID
Parâmetros:
- id (id do filme)
resposta
true
-
GET http://localhost:8000/api/producers/awards-min-max-interval
Lista os produtores com menor (min) e maior (max) intervalo entre dois prêmios
resposta
{ "min": [ { "producer": "Producer 1", "interval": 1, "previousWin": 2008, "followingWin": 2009 }, { "producer": "Producer 2", "interval": 1, "previousWin": 2018, "followingWin": 2019 } ], "max": [ { "producer": "Producer 1", "interval": 99, "previousWin": 1900, "followingWin": 1999 }, { "producer": "Producer 2", "interval": 99, "previousWin": 2000, "followingWin": 2099 } ] }
Se dois produtores possuírem o mesmo intervalo seja min ou max ambos serão adicionados na lista.
Para melhorias futuras do projeto, podem ser implementados e configuradas as seguintes opções:
- A interface gráfica do Vitest pode configurada e habilitada, permitindo a visualização em tempo real dos testes em execução, facilitando o acompanhamento do status e dos resultados dos testes durante o desenvolvimento.
- Será adicionada a configuração de cobertura de testes, proporcionando uma visão clara de quais partes do código estão sendo testadas e ajudando a garantir que a base de código esteja bem testada.
- Integração com SonarQube para monitorar a qualidade do código, identificando possíveis bugs, codesmells, e erros, promovendo um ambiente de desenvolvimento mais saudável e sustentável.
- Rotas para Consultar Studios e Producers: Novas rotas devem adicionadas para permitir a consulta de dados sobre studios e producers.
- Autenticação e Permissão de Rotas: Implementação de uma camada de autenticação para controlar o acesso às rotas, com sistemas de permissão para garantir a segurança e a integridade do sistema.
Essas melhorias irão contribuir para a expansão e a robustez do projeto, além de proporcionar uma experiência mais rica e segura para os usuários.