Ads

O controlador é a ponte inteligente que conecta as interações do usuário com a lógica interna da sua aplicação, orquestrando todo o processo de forma limpa e organizada. Tecnicamente, o Controlador é um componente central da arquitetura MVC (Model-View-Controller), responsável por gerenciar o fluxo da aplicação. Suas principais responsabilidades são:

  1. Receber Requisições: Ele “ouve” as requisições web que chegam a determinadas URLs (endpoints). Por exemplo, quando um usuário acessa www.seusite.com.br/produtos.
  2. Interpretar o Pedido: Ele analisa a requisição para entender a intenção do usuário. Foi uma requisição GET para buscar dados? Ou um POST para enviar novas informações?
  3. Delegar a Tarefa: Um bom controlador não executa a lógica de negócio complexa. Em vez disso, ele delega o trabalho pesado para outras camadas da aplicação, como os Serviços (Services), que são os “chefs de cozinha” responsáveis por preparar os dados.
  4. Preparar e Enviar a Resposta: Após receber o resultado do Serviço, o controlador prepara a resposta final e a envia de volta para o cliente. Essa resposta pode ser uma página HTML para ser exibida no navegador ou, mais comumente em APIs, dados puros no formato JSON.

Como Criar um Controlador?

Se você ainda não sabe como iniciar uma aplicação Spring Boot, é importante que aprenda lendo o artigo Olá Mundo com Spring Boot. Uma vez que você já iniciou já tem a sua aplicação Spring Boot em execucação, vamos construir o nosso primeiro controlador.

  1. Localize a pasta onde está a classe principal da aplicação.
    pasta da classe principal da aplicação Spring Boot
  2. Crie uma pasta chamada controllers

  3. Crie um arquivo java, neste exemplo vamos usar o nome calculadora.java
    criando um controlador spring boot
  4. Note que já existe uma estrutura de código padrão contendo o pacote e a classe do arquivo java. A primeira coisa que precisamos fazer é definir que este arquivo será um controlador e que ele será acessado a partir de um endereço url. Acrescente antes da classe as anotações @RestController e @RequestMapping.
    controlado spring boot - restcontroller e requestmapping

Até aqui, tudo tranquilo. De imediato, o que você precisa saber é que todo controlador Java com Spring Boot na maioria das vezes terão esta estrutura de código. Vamos avançar e escrever nosso primeiro método?

Como Criar um Método Controlador?

Em Orientação à Objetos, um método é um bloco de código que executa algo, uma ação. Agora que você já tem seu controlador, você precisa dar alguma tarefa para ele executar. Como nosso exemplo é uma calculadora, vamos então criar um método capaz de somar dois números.

  1. Dentro da classe, crie o método Somar() que irá retornar um número inteiro.
    criar um método controlador Java Spring Boot
  2. Vamos criar duas variáveis que irão receber dois números inteiros e uma que irá armazenar o resultado.
    Crie uma calculadora com Spring Boot - Soma
  3. E por fim, vamos editar a linha return(0) que atualmente apenas retorna o valor zero, para retornar o valor do cálculo armazenado na variável resultado.
    Crie uma calculadora com Spring Boot - Somar dois números

Até aqui, já temos um controlador e um método controlador que faz a soma de dois números e precisamos definir como executar este método e verificar o seu resultado. Para isso, vamos definir uma rota de acesso ao método construtor.

Como Acessar o Método Construtor

  1. Adicione, logo acima do método, o código @GetMapping("calculadora/somar")  
    acessar um método controlador Spring Boot
  2. Reinicie a sua aplicação Spring Boot pressionando o atalho Ctrl + Shift + F5
  3. Execute seu navegador favorito e acesse http://localhost:8080/calculadora/somar. Eis o resultado;

O resultado gerado foi um conteúdo HTML exibindo o valor da soma. No entanto, existem dois cenários a serem explorados quando se programa um contralador, eu posso retornar dados brutos em um documento HTML como feito neste exemplo, ou posso retornar dados estruturados se o objetivo da aplicação foi construir uma API.

Spring Boot e REST API

Aplicações Spring Boot são amplamente utilizadas para criar REST APIs, e é nesse cenário que o framework realmente brilha.

Quando um controlador é anotado com @RestController, o Spring Boot assume que o objetivo é construir uma API. Isso significa que qualquer objeto Java retornado por um método será automaticamente convertido para o formato JSON — o padrão de comunicação para a maioria das APIs modernas, por ser leve e legível.

Estruturando o retorno do método para dados estruturados jSon com Map .

Map é….

Exemplo;

no código abaixo, deixei em negrito as linhas a serem acrescentadas e alteradas.

@GetMapping("/calculadora/somar")
public Map<String, Integer> somar() {
    Integer num1 = 5;
    Integer num2 = 10;
    Integer resultado = num1 + num2;

    // 1. Mapea os dados para construir o JSON.
    Map<String, Integer> resposta = new HashMap<>();

    // 2. Coloque o resultado no mapa com a chave "resultado"
    resposta.put("resultado", resultado);

    // 3. Retorne o mapa. O Spring fará o resto.
    return resposta;
}

Eis o resultado;

Spring Boot com REST API

O que vem a seguir? A interface (view)

Agora que temos um controlador e um método controlador, basta agora construir a interface para que usuário possa interagir com a aplicação. Este assunto será abordado no próximo artigo, até lá!

Ads

Anderson Oliveira

Anderson Oliveira é desenvolvedor, escritor e docente no CEETPS - Centro Estadual de Educação Tecnologia de São Paulo. Atualmente trabalha na Administração Central do CPS e leciona aulas de programação na Etec Prof. Carmine Biagio Tundisi de Atibaia.