Projeto desenvolvido na imersão Java da Alura, realizada entre os dias 27/03/2023 e 31/03/2023. Trata-se de um programa em Java para baixar imagens de algumas APIs e gerar figurinhas para redes sociais.
Clique na imagem abaixo para assistir o vídeo.
-
- Objetivo: Obter o título, poster e rating dos 250 melhores filmes do IMDB. Uma vez que a API do IMDB estava apresentando instabilidades, não foi possível utilizar a API oficial. Em vez disso, foram utilizados links alternativos oferecidos pelos instrutores da imersão.
-
Desafios:
- Consumir o endpoint de filmes mais populares da API do IMDB. Procure também, na documentação da API do IMDB, o endpoint que retorna as melhores séries e o que retorna as séries mais populares: Esta etapa foi realizada, mas como o link foi exportado para um arquivo separado, então optou-se por colocar todos os links solicitados e fazer o teste em uma única execução, exibindo o resultado dos 4 links.
- Usar sua criatividade para deixar a saída dos dados mais bonitinha: usar emojis com código UTF-8, mostrar a nota do filme como estrelinhas, decorar o terminal com cores, negrito e itálico usando códigos ANSI, e mais: Desafio realizado, mas notou-se que a estrela é exibida de forma diferente no cmd do windows. Além das cores e do emoji de estrela para exibir o rating do filme, também foi inserido um símbolo de like se o rating do filme for maior ou igual a 5 e um emoji de deslike se o rating for inferior a 5.
- Colocar a chave da API do IMDB em algum lugar fora do código como um arquivo de configuração (p. ex, um arquivo .properties) ou uma variável de ambiente: Não foi possível obter a chave devido à instabilidade da API do IMDB. Deste modo, foram colocados os links em um arquivo de configuração somente para concluir o desafio. Os links ficaram no arquivo Link.txt.
-
Resultados:
Top Movies Most Popular Movies & Top Tvs Top Tvs & Most Popular Tvs
-
- Objetivo: Gerar figurinhas para WhatsApp a partir das imagens fornecidas pela API da IMDB. Mais uma vez, devido à instabilidade do IMDB, foram utilizados os links alternativos oferecidos pelos instrutores. Foi percebido que as figurinhas de alguns filmes não eram geradas devido a presença de dois pontos (:) no nome do arquivo. Para resolver este problema os dois pontos (:) foram substituídos por traço (-).
-
Desafios:
- Criar diretório de saída das imagens, se ainda não existir: Desafio realizado.
- Centralizar o texto na figurinha: Desafio realizado.
- Colocar outra fonte como a Comic Sans ou a Impact, a fonte usada em memes: Desafio Realizado. Foi colocado a Comic Sans.
- Colocar contorno (outline) no texto da imagem: Desafio Realizado.
- Colocar uma imagem de você que está fazendo esse curso sorrindo, fazendo joinha e fazer com que o texto da figurinha seja personalizado de acordo com as classificações do IMDB: Desafio Realizado. Entretanto, nos links fornecidos só há filmes com rating superior a 5 e por isso apenas a mensagem Recomendo e sua respectiva imagem foram exibidos.
-
Resultados:
-
- Objetivo: Obter imagens da API da Nasa e refatorar o código utilizando orientação à objetos. Obs: Para manter a compatibilidade e utilizar tanto a API do IMDB como a API da Nasa, foram removidos os emojis do terminal e os links foram colocados no código. Foi necessário refazer a classe JSonParser, pois não estava obtendo os dados corretamente, sendo que para isso foi utilizado Google GSON e a classe JsonParser foi modificada para MyJSonParser a fim de evitar conflitos.
-
Desafios:
- Transformar a classe que representa os conteúdos em um Record, disponível a partir do Java 16: Desafio realizado.
- Criar as suas próprias exceções e usá-las na classe que implementa o cliente HTTP: Desafio realizado.
- Usar recursos do Java 8 e posterior, como Streams e Lambdas, para mapear uma lista em uma outra: Desafio Realizado.
- Criar uma Enum que une, como configurações, a URL da API e o extrator utilizado: Desafio Realizado.
-
Resultados:
-
- Objetivo: Obter figurinhas a partir de uma API própria. ApI disponível em: https://github.com/simastech-com/linguagens-api
-
Resultados:
-
-
Objetivo: Utilizar API própria publicada no Fly.io.
- GitHub da API: https://github.com/simastech-com/linguagens-api
- URL da API: https://alura-linguagens-simaswilliam2.fly.dev/linguagens
- Adicionais: Para finalização do projeto, foi colocado para definir automaticamente o tamanho da fonte de acordo com a largura da imagem, espaçamento do texto de altura automática e um menu inicial para escolher de qual API deseja baixar.
-
Resultados:
-
Objetivo: Utilizar API própria publicada no Fly.io.