Pular para o conteúdo principal

Preparativos para a Criação de um RestController

Mensagem para os aprendizes​

Antes de começar o exercício prático de criação de um RestController, é essencial que você dedique um tempo para ler atentamente esta seção. Ainda não é hora de codificar, mas sim de se preparar e entender a teoria por trás do que vamos fazer.

1. O que é um Serviço Web?​

Um serviço web é um componente de software que permite que aplicações se comuniquem entre si através de uma rede. Ele expõe funcionalidades ou dados que outras aplicações podem consumir enviando requisições HTTP e recebendo respostas.

Arquitetura Cliente-Servidor​

Fluxo de Comunicação​


2. Anotações no Spring Boot​

As anotações são metadados adicionados ao código para indicar como certas partes devem se comportar. Elas permitem que o Spring Boot configure automaticamente sua aplicação.

Principais Anotações​

AnotaçãoPapelExemplo
@RestControllerIndica que a classe é um controlador REST que gerencia requisições HTTP e retorna respostas em formato JSON ou XML@RestController public class CardController
@RequestMappingAssocia uma URL base a uma classe ou método@RequestMapping("/cards")
@GetMappingEspecifica que um método responde a requisições HTTP GET@GetMapping("/hello")
@PostMappingEspecifica que um método responde a requisições HTTP POST@PostMapping("/create")
@PutMappingEspecifica que um método responde a requisições HTTP PUT@PutMapping("/update")
@DeleteMappingEspecifica que um método responde a requisições HTTP DELETE@DeleteMapping("/delete")

Hierarquia das Anotações​


3. Modelo (Model) e Controlador (Controller)​

O Modelo​

Um Modelo é uma classe Java que representa uma entidade de negócio. Ela contém os atributos e métodos para gerenciar os dados.

Exemplo: Modelo Card

Código Java correspondente:

public class Card {
private int cardId;
private int customerId;
private String cardNumber;
private String cardType;
private int totalLimit;
private int amountUsed;
private int availableAmount;
private String createDt;

// Getters e Setters
}

O Controlador​

Um Controlador é uma classe que gerencia as requisições HTTP recebidas e retorna respostas. Ele faz a ponte entre o cliente e a lógica de negócio.

Exemplo: Controlador CardController

Código Java correspondente:

@RestController
@RequestMapping("/cards")
public class CardController {

@GetMapping("/hello")
public String helloCard() {
return "Hello, Card!";
}

@GetMapping("/{id}")
public Card getCard(@PathVariable int id) {
// Lógica para recuperar um cartão
}

@PostMapping
public Card createCard(@RequestBody Card card) {
// Lógica para criar um cartão
}
}

Arquitetura MVC com Spring Boot​


4. Pré-requisitos Técnicos​

Antes de começar o exercício prático, certifique-se de que seu ambiente de desenvolvimento está corretamente configurado.

Verificação das Ferramentas​

1. Java Development Kit (JDK)​

Versão requerida: Java 17 ou superior

Verificação:

java -version

Resultado esperado:

java version "17.0.x" ou superior

2. Apache Maven​

Versão requerida: Maven 3.9 ou superior (recomendado para estabilidade)

Verificação:

mvn -version

Resultado esperado:

Apache Maven 3.9.x ou superior
Java version: 17.x.x

Nota: O Maven 3.9+ oferece melhor estabilidade e compatibilidade com Java 17+.

3. Visual Studio Code​

Extensões necessárias:

  • Extension Pack for Java
  • Spring Boot Extension Pack

Diagrama do Ambiente de Desenvolvimento​


5. Plano do Exercício Prático​

Objetivo​

Aprender a criar um controlador REST para gerenciar requisições HTTP criando uma aplicação Spring Boot completa.

Etapas do Exercício​

Detalhes das Etapas​

Etapa 1: Configuração do Projeto​

Utilize o Spring Initializr para gerar um projeto Spring Boot com:

  • Project: Maven
  • Language: Java
  • Spring Boot Version: 3.x
  • Dependencies: Spring Web, Spring Boot DevTools

Etapa 2: Criação do Modelo​

Crie uma classe Card no pacote model com os atributos necessários.

Etapa 3: Criação do Controlador​

Crie uma classe CardController no pacote controller com:

  • Anotação @RestController
  • Anotação @RequestMapping("/cards")
  • Métodos com @GetMapping, @PostMapping, etc.

Etapa 4: Compilação e Execução com Maven​

Comandos Maven essenciais:

Opção 1: Comandos separados

# Limpar o projeto
mvn clean

# Compilar e instalar (sem testes)
mvn install -DskipTests

# Executar a aplicação
mvn spring-boot:run

Opção 2: Comando combinado (RECOMENDADO)

# Tudo em um único comando
mvn clean install -DskipTests spring-boot:run

Explicação dos comandos:

  • mvn clean : Remove arquivos compilados anteriormente
  • mvn install : Compila o projeto e gera o arquivo JAR
  • -DskipTests : Ignora a execução dos testes (mais rápido para desenvolvimento)
  • spring-boot:run : Inicia a aplicação Spring Boot

Nota: O comando combinado é mais eficiente pois executa todo o ciclo de uma só vez.

Etapa 6: Teste​

Testar os endpoints:

  • http://localhost:8080/cards/hello
  • Utilizar o Postman para testar os outros métodos

6. Estrutura do Projeto Spring Boot​


7. Ciclo de Vida de uma Requisição HTTP​


Conceitos-Chave para Lembrar​

1. Separação de Responsabilidades​

2. Anotações Spring Boot​

  • @RestController = @Controller + @ResponseBody (retorna automaticamente JSON)
  • @RequestMapping define o caminho base
  • @GetMapping/@PostMapping/@PutMapping/@DeleteMapping correspondem aos métodos HTTP

3. Formato de Resposta​

Por padrão, o Spring Boot converte automaticamente objetos Java em JSON usando o Jackson.


Conclusão​

Esta leitura preparatória forneceu para você:

  • Uma compreensão dos serviços web e seu funcionamento
  • O conhecimento das principais anotações do Spring Boot
  • A distinção entre Modelo e Controlador
  • Os pré-requisitos técnicos necessários
  • Uma visão geral do plano do exercício prático

Agora você está pronto para passar ao exercício prático onde irá criar seu primeiro RestController!

Importante: Se algo não estiver claro, não hesite em reler esta seção ou fazer perguntas. Uma boa compreensão teórica facilitará muito a prática.