Skip to content

Latest commit

 

History

History

aula04

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

Aula 04 - Criando Nossa Própria API Com Spring

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.

Instalações e Registros Necessários

⚠️ Antes do #partiucodar temos que fazer algumas instalações e registros ⚠️

  • Spring
  • MongoDB (Banco de Dados)
  • PostMan

Spring

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

image

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.

image

Iniciaremos um novo projeto e mais tarde vamos mesclar com os códigos das aulas anteriores.

Aplicação MongoDB

De início, precisamos realizar o registro no MongoDB Atlas, após clicar em Create.

  1. Escolher a forma de autenticação: senha ou certificado.

image

  1. 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

image

Aplicação PostMan

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 +

image

Não faremos um GET e sim um POST, mas no final desta aula

image

PostMan retorna exatamente o que estava no navegador

image

⏰ Hora de Codar! ⏰

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

image

  • Alterar “path” para “/linguagem-preferida”
  • Alterar SomeData para String
  • Alterar getMethodName para processaLinguagemPreferida
  • 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! 😄

image

  • Criar um nova Classe Linguagem
  • Criar atributos privados String title e String image
  • Criar private int ranking

image

Conforme a aula03 criar os atalhos

  • Criar atalho: Generate Getters
  • Criar atalho: Generate Contructors

Teremos o resultado: image

Voltaremos no arquivo LinguagemController.java para adicionar as linhas: 10, 11, 12 e 13.

Fazer o import java.util.List;

image

Repositório de Imagens

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

image

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.

image

Após o RUN, no navegador escrever: localhot:8080/linguagens e o resultado será um json

image

Uhull! Agora vamos mesclar o código atual com os anteriores 👏👏👏

Vamos abrir no terminal o projeto anterior, no arquivo App.java vamos adicionar as linhas 17 e 18 para analisarmos uma nova API.

image

Após o RUN, os arquivos estarão na pasta de saída, conforme na aula anterior e o resultado será:

image

image

Retornado ao MondoDB

No repositório a partir do MongoDB (Banco de Dados):

  • Clicar em Project: 0

image

  • Clicar em View All Projects

image

  • Clicar em Project0

image

  • Clicar em Browse Collections

image

  • Clicar em Add My Own Data e na próxima janela adicionar os nomes que preferir, e clicar Create

image

Dentro de uma coleção temos documentos e o MongoDB é um banco que armazena documentos

  • Clicar em Insert Document

image

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

image

Note que temos 01 (um) documento criado

image

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 {}.

image image

Com isso, teremos 3 (três) documentos dentro deste banco de dados, note que em cada item possui um id.

image

Vamos criar a String de conexão, clicar em:

  • Overview
  • Connect
  • Connect your application

image

image

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)

image

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)

image

No arquivo Linguagem.java incluir as linhas 6, 9, 10, 15, 16 e 17.

image

Fazer o import org.springframework.data.annotation.Id; Fazer o import 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)

image

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

image

Após o RUN, o resultado será 😊

image

Retornando ao PostMan

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

image

Voltaremos no VSC, no arquivo LinguagemController.java para adicionar as linhas 32 até 35, criando uma variável para save = LinguagemSalva

image

Fazer o import org.springframework.web.bind.annotation.PostMapping;

Após a variável adicionar return LinguagemSalva na linha 35

image

Após o RUN, voltaremos no PostMan, clicar em Send. Tendo a resposta 200 OK o resultado foi positivo 😄

image

Voltaremos no MongoDB, clicar em Refresh e teremos 04 resultados! 😄

image

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

image

Isso é tudo pessoal! 😊


Dica Boa da Alura!

Stickers Dev: Aluraverso no WhatsApp e Telegram