{"id":19719384,"url":"https://github.com/vhnegrisoli/filmes-webflux-api","last_synced_at":"2026-04-10T15:03:44.739Z","repository":{"id":127127266,"uuid":"313715815","full_name":"vhnegrisoli/filmes-webflux-api","owner":"vhnegrisoli","description":"API REST de um repositório de filmes utilizando Java 11, Spring Boot, Spring WebFlux, Spring Data MongoDB e banco NoSQL MongoDB","archived":false,"fork":false,"pushed_at":"2020-11-19T18:22:33.000Z","size":912,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-13T16:37:26.871Z","etag":null,"topics":["docker","docker-compose","java11","mongodb","reactive","spring-boot","spring-webflux"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vhnegrisoli.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-11-17T19:03:30.000Z","updated_at":"2020-11-20T12:56:03.000Z","dependencies_parsed_at":null,"dependency_job_id":"33aa79ee-bf26-4b3c-affa-18a3a3113a25","html_url":"https://github.com/vhnegrisoli/filmes-webflux-api","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vhnegrisoli/filmes-webflux-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vhnegrisoli%2Ffilmes-webflux-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vhnegrisoli%2Ffilmes-webflux-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vhnegrisoli%2Ffilmes-webflux-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vhnegrisoli%2Ffilmes-webflux-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vhnegrisoli","download_url":"https://codeload.github.com/vhnegrisoli/filmes-webflux-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vhnegrisoli%2Ffilmes-webflux-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278916431,"owners_count":26068091,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-08T02:00:06.501Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","docker-compose","java11","mongodb","reactive","spring-boot","spring-webflux"],"created_at":"2024-11-11T23:08:08.763Z","updated_at":"2025-10-08T08:57:48.334Z","avatar_url":"https://github.com/vhnegrisoli.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Projeto: Filmes WebFlux API\n\n\n### Resumo\n\nO Filmes WebFlux API é um projeto de desenvolvimento de uma API REST\nde um repositório de filmes utilizando Java 11, Spring Boot, Spring WebFlux, Spring Data MongoDB e banco NoSQL MongoDB.\n \n### Tecnologias\n\nAs principais tecnologias utilizadas neste projeto são: \n\n* **Java 11**\n* **Spring Boot**\n* **Spring WebFlux**\n* **Spring Data MongoDB**\n* **Reactive MongoDB Repositories**\n* **MongoDB**\n* **Docker**\n* **Docker-compose**\n* **API REST**\n* **Gradle**\n\n## Instalação e execução\n\nÉ possível executar a aplicação manualmente pela IDE ou terminal, ou também\nvia container Docker e até mesmo com docker-compose.\n\n#### Executando manualmente\n\nPrimeiramente, é necessário realizar a instalação das dependências, para isto, rode o comando:\n\n`gradle build`\n\nEm sequência, rode o comando:\n\n`gradle bootRun`\n\nOu então:\n\n`java -jar build/libs/.jar`\n\n**Obs.: para rodar manualmente, é necessário ter uma instância do MongoDB \nrodando sem autenticação (padrão definido nas configurações do projeto para fins de desenvolvimento)\nou rodar o container do MongoDB separadamente do arquivo compose, para isto, veja o comando abaixo.**\n\n#### Executando via Docker\n\nPrimeiramente, será necessário criar uma `network`, conforme o comando abaixo:\n\n`docker network create filmes`\n\nDepois, será necessário criar a imagem e rodar o container do MongoDB:\n\n`docker run --network filmes --name filmes-db -p 27017:27017 -p 28017:28017 -e AUTH=no -d tutum/mongodb`\n\nE, por fim, criar a imagem da API:\n\n`docker image build -t filmes-api .`\n\nEm sequência, rodar o container:\n\n`docker container run --network filmes --name filmes-api -e SPRING_PROFILES_ACTIVE=docker -e MONGO_DB_HOST=filmes-db -e MONGO_DB_PORT=27017 -e MONGO_DB_DATABASE=webflux -p 8080:8080 -d filmes-api`\n\nPara acompanhar os logs, basta executar o comando:\n\n`docker logs --follow nome_do_container`\n\n#### Executando via Docker-compose\n\nPara executar todos os containers juntos, basta apenas rodar o comando:\n\n`docker-compose up`\n\nCaso queira ignorar os logs ao criar todos os containers, adicione flag `-d`.\n\nPara parar os serviços inicializados pelo `compose`, basta rodar o comando:\n\n`docker-compose stop`\n\n## Disponibilização de acesso\n\nA aplicação será dispinibilizada no endereço `http://localhost:8080`.\n\nO banco de dados MongoDB estará disponbilizado no endereço `http://localhost:27017`.\n\n### Deployment no Heroku\n\nFoi feito um deploy em produção para a aplicação no Heroku e o banco de dados de produção utilizado com MongoDB foi\natravés do MongoDB Atlas. \n\nA aplicação está disponível no Heroku em: [https://filmes-webflux-api.herokuapp.com/](https://filmes-webflux-api.herokuapp.com/)\n\n#### Documentação\n\nToda a documentação será feita através do Swagger, e poderá ser encontrada no endereço:\n\n[http://localhost:8080/swagger-ui/](http://localhost:8080/swagger-ui/) (endereço local)\n\nou\n\n[https://filmes-webflux-api.herokuapp.com/swagger-ui/](https://filmes-webflux-api.herokuapp.com/swagger-ui/)\n\nVisão inicial da documentação da API:\n\n![Documentação Swagger](https://github.com/vhnegrisoli/filmes-webflux-api/blob/main/imagens/Documenta%C3%A7%C3%A3o%20Swagger.png)\n\nComo a API é livre de autenticação, pode ser testada diretamente pela documentação executando local ou via Heroku.\n\n## Autores\n\n* **Victor Hugo Negrisoli** - *Desenvolvedor Back-End* - [vhnegrisoli](https://github.com/vhnegrisoli)\n\n## Licença\n\nEste projeto possui a licença do MIT. Veja mais em: [LICENSE](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvhnegrisoli%2Ffilmes-webflux-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvhnegrisoli%2Ffilmes-webflux-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvhnegrisoli%2Ffilmes-webflux-api/lists"}