Skip to content

GuiAgost/alura-stickers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🤿 Mergulhando em Java

Este projeto foi realizado através das aulas da imersão alura.

⏰ Cronograma da Imersão Alura

  • Aula 1 - Consumindo uma API de filmes com Java

  • Aula 2 - Gerando figurinhas para WhatsApp

  • Aula 3 - Ligando as pontas, refatoração e orientação a objetos

  • Aula 4 - Criando nossa própria API com Spring

  • Aula 5 - Publicando nossa API na Cloud

👨‍🏫 Professores

  • Paulo Silveira
  • Alexandre Aquiles
  • Jacqueline Oliveira

✔️ Técnicas e tecnologias utilizadas

  • Java 17
  • InteliJ IDEA
  • Paradigma de orientação a objetos
  • Spring Boot
  • MongoDB
  • Postman

Aula 1 - CONSUMINDO UMA API DE FILMES COM JAVA

Consumir a API do IMDb e exibir:

  • Filmes mais top, mais populares e Tv's mais populares;
  • Título do filme;
  • Link de imagem;
  • Classificação do filme.
  • Decorar o terminal

Inicialmente, é feito o cadastro no site IMDb API para obter a chave. Com a chave obtida, é criado o arquivo de configuração key.properties para a fim de separar o código conforme o exemplo abaixo:

https://imdb-api.com/en/API/Top250Movies/[sua-chave]

⚠️ troque sua-chave pela API Key obtida no IMDb!

Contudo, durante a imersão, o site da IMDB ficou instável e os intrutores criaram os links alternativos, escolhi os seguintes links:

Para decorar o terminal, segue o link de dicas: decore o terminal.

Resultado da Aula 1

resultadoAula1

Aula 2 - GERANDO FIGURINHAS PARA WHATSAPP

Gerar figurinhas a partir de uma imagem de uma url da Imdb e exibir:

  • Redimensionar a imagem;
  • Colocar uma palavra abaixo da imagem, de acordo com a sua classificação;
  • Customizar a palavra.

Resultado da Aula 2

resultadoAula1resultadoAula1

Aula 3 - LIGANDO AS PONTAS: REFATORAÇÃO E ORIENTAÇÃO A OBJETOS

Buscar a API da Nasa e refatorar o código aplicando a Orientação à objeto:

  • Transformar a classe que representa o conteúdos em um Record;
  • Criação de um Enum para unir a URL da API e o extrator utilizado;
  • Usar o Streams e Lambdas para mapear a lista;
  • Criar uma nova exceção para ser utilizada na classe que implementa cliente HTTP.

API NASA se encontra nesse site NASA API, também deverá ser feito o cadastro para obter a chave.

Resultado da Aula 3

resultadoAula1

Aula 4 - CRIANDO A PRÓPRIA API COM SPRING

Construir uma API REST para expor nosso próprio conteúdo, utilizando ferramentas profissionais como Spring Boot, Maven, PostMan e MongoDB. desenvolvendo as seguintes funcionalidades:

  • Implementar o CRUD (Create, Read, Update e Delete);
  • Ordenar a lista conforme ranking;
  • Quando for cadastrado através do POST, retornar o status 201;

Para testar o funcionamento do CRUD, poderá ser baixado webservice Postman e, após a instalação, adicionar o link do localhost gerado pelo servidor da aplicação: http://localhost:8080/linguagens e adicionando as requisições para:

  • GET para consulta;
  • POST para adicionar;
  • PUT para alteração;
  • DELETE para excluir.

Além da acima, também poderá instalar o banco de dados não relacional MongoDB ou se preferir, acessar diretamente no site oficial para registrar e utilizar o mesmo em cloud.

Resultado da Aula 4

Foi gerado projeto linguagens-api através do link spring initializer. Após codar a aplicação Spring Boot, o link localhost exibiu informações de linguagens conforme a imagem:

localhost

⚠️ O json está formatado para deixar o visual mais agradável, é só instalar a extensão [JSON Viewer](https://chrome.google.com/webstore/detail/json-viewer/efknglbfhoddmmfabeihlemgekhhnabb?hl=pt-BR no navegador).

Banco de dados não relacional MongoDB retornou:

mongoDB

Resultado do teste CRUD através do webservice Postman as seguintes requisições:

1 - Consulta:

consultaAula4

2 - Consulta por id:

consultaPorIdAula4

3 - Cadastro:

cadastroAula4

4 - Atualização:

cadastroAula4

5 - Exclusão:

cadastroAula4

Agora, vamos para projeto alura-stickers para gerar as figurinhas de linguagens. Para isso, foi necessária algumas mudanças como a remoção de api IMDB e da NASA e deixar somente API de linguagens conforme o projeto linguagens-api desenvolvido. Além disso, foi necessária o redimensionamento da imagem e posicionamento da palavra abaixo da figurinha. Resultou as seguintes figurinhas:

javac#python

Aula 5 - PUBLICANDO A NOSSA API NO CLOUD

Nesta última aula, tornamos nossa aplicação acessível por qualquer pessoa, fazendo o deploy na nuvem. Além disso, vamos gerar figurinhas a partir do conteúdo dessa nossa API.

Foram realizados passo a passo os seguintes:

1° - Executar o comando "package" para gerar o arquivo .jar:

cadastroAula4

Após isso, gerou dentro da pasta target, um arquivo jar chamado linguagens-api-0.0.1-SNAPSHOT.jar:

cadastroAula4

2° - Realizar conteiner no Docker, copiar o seguinte comando e ir no prompt comando da pasta target do projeto e executar:

cadastroAula4

Assim, foi gerado a imagem e conteiner:

cadastroAula4

3° - Criar o docker file workspace no projeto:

cadastroAula4

4° - Construir a imagem, executando o comando Docker Images: Build image

Após o comando, foi criado o Docker Hub:

cadastroAula4

Na sequencia, na Images -> inguagens-api -> latest e clicar no botão direito e clique em "push":

cadastroAula4

5° - Ir no Fly.io e copiar o comando e executar no powershell:

cadastroAula4

6° - Após, ir no Sign In copiar o comando e executar no powershell para autenticação:

cadastroAula4

7° - Feito isso, ir na pasta do projeto linguagens-api, no powershell, para subir o deploy seguindo o exemplo da sequencia de comandos abaixo:

cadastroAula4

Criado o arquivo:

cadastroAula4

E no dashboard do fly.io:

cadastroAula4

🙌 Pronto!! A aplicação já está no ar e pronto para acessar!! 🚀

📁 Acesso ao projeto

Você poderá acessar neste projeto alura-stickers e baixar conforme a imagem:

exemplo

Ou se preferir, poderá também utilizar o git baixando o projeto para seu repositório.

🛠️ Abrir e rodar o projeto

Poderá abrir o projeto através IDE de sua preferência (Vscode, Intellij IEDA, Eclipse...), após, é só dar o run!! 😀

Releases

No releases published

Packages

No packages published