Nesta aula, criaremos nossa própria API e Web Service, podendo ser consumida com todo o código que já escrevemos, além disso, vamos gerar mais figurinhas baseado neste novo Web Service! Que maneiro não?! 😁
Vamos misturar diversos Frameworks e bibliotecas, como Spring, Spring Boot, Maven, PostMan e MongoDB.
- Spring
- MongoDB (Banco de Dados)
- PostMan
Afinal, o que são Springs? São Frameworks Open Source, utilizados para agilizar o processo de codificação.
Acessar Star.Spring e seguir os passos abaixo:
- Project: Mavem Project
- Language: Java
- Spring Boot: 3.0.0 (M4)
- Group: br.com.alura
- Artifact: nome-do-projeto
- Description: descrição-do-projeto
- Packaging: Jar
- Java: 17
- Em ADD DEPENDENCIES adicionar Spring Web
- Clicar em Generate
Na pasta de Downloads teremos o arquivo relacionado em .zip, em seguida, devemos extrair o conteúdo do diretório e iniciá-lo no Visual Studio Code [VSC] (abrir com botão direito do mouse!), charemos de Projeto: Linguagens-API.
Iniciaremos um novo projeto e mais tarde vamos mesclar com os códigos das aulas anteriores.
De início, precisamos realizar o registro no MongoDB Atlas, após clicar em Create.
- Escolher a forma de autenticação: senha ou certificado.
- Escolher a origem de onde você gostaria de se conectar:
- My Local Environment: conectar do computador pessoal;
- Cloud Environment: conectar de um data center ou de Cloud pública, por exemplo, AWS.
Optando pelo My Local Environment:
- Descobrir o nº do IP;
- Incluir a descrição, opcional
- Clicar em Add Entry e Finish and Close
PostMan: algumas das possibilidades desta aplicação são navegar e explorar diversas API’s
Realizar o registro em PostMan, e baixar o PostMan Desktop (pois nossa aplicação está no localhost)
Após baixar o PostMan Desktop:
- Clicar My Workspace
- Clicar +
Não faremos um GET e sim um POST, mas no final desta aula
- Apenas para visualizar o resultado! Em GET adicionar o link do localhost: http://localhost:8080/linguagens
- Clicar Send
PostMan retorna exatamente o que estava no navegador
Faremos uma API das linguagens mais populares das empresas que contratam a Alura. Vamos ranquear por uso, incluir imagem e popularidade.
Voltar ao VSC, abrir o projeto Linguagens-API:
- Criar uma classe LinguagemController
- Incluir a anotação
@RestController
e@GetMapping
- Incluir
return “Oi, Java!”
- Atentar-se aos
import
- Alterar
“path”
para“/linguagem-preferida”
- Alterar
SomeData
paraString
- Alterar
getMethodName
paraprocessaLinguagemPreferida
- Deletar
*@RequestParam String param*
- Deletar
import org.springframework.web.bind.annotation.RequestParam
;
@GetMapping(value="/linguagem-preferida")
public String processaLinguagemPreferida() {
return "Oi, Java!";
}
Após o RUN, no navegador escrever: localhot:8080/linguagem-prefereida e o resultado será Oi, Java! 😄
- Criar um nova Classe Linguagem
- Criar atributos privados
String title
eString image
- Criar
private int ranking
Conforme a aula03 criar os atalhos
- Criar atalho: Generate Getters
- Criar atalho: Generate Contructors
Voltaremos no arquivo LinguagemController.java para adicionar as linhas: 10, 11, 12 e 13.
Fazer o
import java.util.List;
Vamos para o repositório no GitHub com imagens das linguagens de programação.
- Escolher uma linguagem
- Selecionar o arquivo 256x256.png
- Abrir a imagem
- Clicar na imagem para gerar a url em outra janela
- Copiar nova url
Retornando ao código em LinguagemController.java colar a url na lista/image
. Incluímos uma nova linha e repetimos os passos anteriores, neste exemplo, fiz a cópia da url da imagem de Java e Python
Voltando para o arquivo LinguagemController
- Comentar ou deletar as linhas 16, 17, 18 ou 19,
Não serão mais úteis, utilizamos apenas para compreender o primeiro RUN da atividade.
- Adicionar as linhas 21 até 24.
Após o RUN, no navegador escrever: localhot:8080/linguagens e o resultado será um json
Vamos abrir no terminal o projeto anterior, no arquivo App.java vamos adicionar as linhas 17 e 18 para analisarmos uma nova API.
Após o RUN, os arquivos estarão na pasta de saída, conforme na aula anterior e o resultado será:
No repositório a partir do MongoDB (Banco de Dados):
- Clicar em Project: 0
- Clicar em View All Projects
- Clicar em Project0
- Clicar em Browse Collections
- Clicar em Add My Own Data e na próxima janela adicionar os nomes que preferir, e clicar Create
Dentro de uma coleção temos documentos e o MongoDB é um banco que armazena documentos
- Clicar em Insert Document
Em Insert to Collection, vamos uadicionar a url de uma imagens das linguagens de programação Repositório GitHub
- Clicar nas {} (chaves)
- Adicionar atributos: title, image e ranking
- Na imagem, em formato 256x256.png, incluir a url
- Clicar em Insert
Note que temos 01 (um) documento criado
Vamos criar mais 2 (dois) documentos, passaremos as informações criadas no início desta aula para o MongoDB
Atenção no momento de copiar o código não incluir as {}.
Com isso, teremos 3 (três) documentos dentro deste banco de dados, note que em cada item possui um id.
Vamos criar a String de conexão, clicar em:
- Overview
- Connect
- Connect your application
Precisaremos adicionar uma dependência no projeto.
- No VSC
- No projeto Linguagens-api
- Arquivo pom.xml
- Adicionar as linhas 25 até 28
- Clicar em Always (no canto inferior direito da tela)
No arquivo application.properties dentro do main/resources vamos colar nosso link bem legal, que é o valor da propriedade!
Resources são os demais arquivos estáticos, e outros, que não são Java
- Incluir:
spring.data.mongodb.uri
- Incluir o Link bem legal
- Senha (criado no site do MongoDb), deletar as <>
- aluraDb (que é o banco de dados)
No arquivo Linguagem.java incluir as linhas 6, 9, 10, 15, 16 e 17.
Fazer o
import org.springframework.data.annotation.Id;
Fazer oimport org.springframework.data.mongodb.core.mapping.Document;
- Criar uma classe LinguagemRepository para buscar os dados
- Alterar para interface
Apenas para visualizar o código! em MongoRepository, clicar com Ctrl+Clique
(botão esquerdo do mouse)
No arquivo LinguagemController.java
- Deletar ou comentar as linhas 11 até 15
- Adicionar as linhas 22 até 30
lembrete: as linhas 17 até 20 foram desconsideradas em um momento anterior desta aula
Após o RUN, o resultado será 😊
Faremos um POST
- Clicar +
- Em GET alterar para POST
- Em POST adicionar o link do localhost [http://localhost:8080/linguagens]
- Em Body selecionar raw, e em Text alterar para JSON
Faremos o mesmo que no início da atividade, incluir: title, image e ranking. Repositório do GitHub com imagens das linguagens de programação
Voltaremos no VSC, no arquivo LinguagemController.java para adicionar as linhas 32 até 35, criando uma variável para save
= LinguagemSalva
Fazer o
import org.springframework.web.bind.annotation.PostMapping;
Após a variável adicionar return LinguagemSalva
na linha 35
Após o RUN, voltaremos no PostMan, clicar em Send. Tendo a resposta 200 OK o resultado foi positivo 😄
Voltaremos no MongoDB, clicar em Refresh e teremos 04 resultados! 😄
E, por último, um detalhe sobre o MongoDB para conseguirmos acessar de qualquer lugar:
- Em Network Acces
- Em Edit
- Editar para o IP Geral: o acesso para o Ip Geral 0.0.0.0/0
Isso é tudo pessoal! 😊