ADS
Exercícios
Professora: Marcileide Cardoso de Souza
Exercício 01
Visão geral: o que o código faz
Esse código cria uma API REST simples — um mini
servidor que responde requisições da web.
Ele é usado para enviar e receber informações entre
sistemas (como sites, apps ou Power BI).
Objetivo prático do código
• Cria endpoints (rotas) que retornam mensagens:
– /api/hello → mostra “Olá”
– /api/hello?nome=Maria → mostra “Olá Maria”
– /api/hello/Maria → mostra “Olá Maria”
• Esse é o primeiro passo para construir APIs reais em
Java com Spring Boot.
Estrutura geral do código – Opção 02
package [Link];
import [Link].*;
@RestController
@RequestMapping("/api")
public class HelloController {
// Endpoint 1 - resposta simples
@GetMapping("/hello")
public String hello() {
return "Olá";
}
// Endpoint 2 - responde com o nome informado na URL (usando @PathVariable)
@GetMapping("/hello/{nome}")
public String helloComNome(@PathVariable String nome) {
return "Olá " + nome;
}
// Endpoint 3 - responde com o nome informado como parâmetro (usando @RequestParam)
@GetMapping("/helloComNome")
public String helloComNomeParametro(@RequestParam String nome) {
return "Olá, " + nome + "! Seja bem-vindo(a) ao Spring Boot!";
}
}
Testar -> [Link] (retorna "Olá")
Testar -> [Link] (usa @PathVariable)
Testar -> [Link] (usa @RequestParam)
Explicando linha por linha
package → define o pacote (organização do projeto)
import → traz bibliotecas necessárias
@RestController → define que é um controlador web
@RequestMapping("/api") → cria o prefixo das rotas
@GetMapping("/hello") → cria uma rota para responder “Olá”
@RequestParam → lê o valor passado na URL (?nome=Maria)
@RequestParam x @PathVariable
@RequestParam → lê valores na URL (?nome=Maria)
@PathVariable → lê valores diretos na rota
(/hello/Maria)
Exemplos:
@GetMapping("/hello")
public String hello(@RequestParam String nome)
@GetMapping("/hello/{nome}")
public String hello(@PathVariable String nome)
Onde esse código se encaixa no sistema
• Esse código fica na camada Controller, que recebe e
responde requisições.
• Arquitetura MVC:
– Model → dados e regras de negócio
– View → interface (HTML, React, etc.)
– Controller → responde requisições (esse código)
Funcionamento prático
O projeto é executado e o servidor inicia na
porta 8080.
O navegador acessa /api/hello.
O Spring encontra o método correto.
O método executa e retorna a mensagem
“Olá”.
O navegador exibe o resultado.
Aplicações práticas
Aplicativos móveis que consomem dados da API
Sites que exibem produtos ou usuários
Power BI ou sistemas externos que buscam informações
Autenticação e login de usuários
Integração entre sistemas
Estrutura do projeto Spring Boot
• src/main/java/com/example/demo
• |── controller → [Link]
• |── model → classes de dados
• |── service → regras de negócio
• |── repository → conexão com banco de dados
• └── [Link] → inicia o sistema
Resumo geral
• Esse código:
– Cria uma API REST simples.
– Permite comunicação entre sistemas.
– É a base para sistemas com banco de dados e
autenticação.
– Mostra como o Spring Boot organiza rotas e respostas.
Exercício prático 01
Local: controller/[Link]
• Crie o arquivo [Link] na pasta controller do seu
projeto.
• Dentro dele, desenvolva três métodos que retornem mensagens
de boas-vindas utilizando as diferentes formas de capturar valores
na URL:
– Sem parâmetros → Apenas retorna “Olá! Seja bem-vindo(a) ao Spring
Boot!”
– Com @RequestParam → Recebe o nome como parâmetro (?nome=...)
– Com @PathVariable → Recebe o nome direto no caminho da URL
(/saudacaoPath/{nome})
Trabalhando com múltiplos parâmetros
package [Link];
import [Link].*;
@RestController
@RequestMapping("/api")
public class CalculadoraController {
@GetMapping("/somar")
public String somar(@RequestParam int num1, @RequestParam int
num2) {
int resultado = num1 + num2;
return "A soma é: " + resultado;
}
}
Trabalhando com múltiplos parâmetros - Testando
Tipo URL Resultado esperado
[Link]
@RequestParam A soma é: 30
10&num2=20
@PathVariable [Link] A soma é: 30
Exercício prático 02
Local: controller/[Link]
• Criar novos métodos: /subtrair, /multiplicar, /dividir.
• Validar divisão por zero
• Retornar mensagens formatadas como:"O resultado de
10 x 2 é 20.“
if (num2 == 0) {
return "Erro: não é possível dividir por zero!";
}
double resultado = num1 / num2;
return "O resultado da divisão é: " + resultado;