image

Access unlimited bootcamps and 750+ courses forever

70
%OFF
João Santos
João Santos19/09/2025 13:22
Share

🌐 Anotações do Spring Boot para Web REST Controllers

    ✨ Introdução

    O desenvolvimento de APIs RESTful com Spring Boot é uma das abordagens mais eficientes e elegantes no ecossistema Java. Grande parte dessa praticidade vem do uso de anotações, que permitem configurar rotas, manipular dados da requisição e estruturar o comportamento dos controladores de forma clara e concisa.

    Neste artigo, vamos explorar as principais anotações utilizadas em Web REST Controllers, explicando cada uma com exemplos prÔticos para facilitar sua aplicação no dia a dia.

    🧩 Anotações Essenciais para Controllers REST

    šŸ“Œ @RestController

    • Função: Define a classe como um controlador REST. Combina @Controller e @ResponseBody, retornando os dados diretamente no corpo da resposta (geralmente em JSON).
    • Exemplo:

    java

    @RestController
    public class ProdutoController {
      // mƩtodos retornam JSON
    }
    

    šŸ“Œ @RequestMapping

    • Função: Mapeia rotas HTTP para mĆ©todos ou classes. Pode definir o caminho e o tipo de requisição.
    • Exemplo:

    java

    @RequestMapping(value = "/produtos", method = RequestMethod.GET)
    public List<Produto> listar() {
      return produtoService.listarTodos();
    }
    

    šŸ“Œ @GetMapping, @PostMapping, @PutMapping, @DeleteMapping, @PatchMapping

    • Função: Atalhos para @RequestMapping com mĆ©todos HTTP especĆ­ficos.
    • Exemplo:

    java

    @GetMapping("/produtos/{id}")
    public Produto buscarPorId(@PathVariable Long id) {
      return produtoService.buscar(id);
    }
    

    šŸ“Œ @PathVariable

    • Função: Extrai variĆ”veis diretamente da URL.
    • Exemplo:

    java

    @GetMapping("/clientes/{id}")
    public Cliente buscar(@PathVariable Long id) {
      return clienteService.buscarPorId(id);
    }
    

    šŸ“Œ @RequestParam

    • Função: Captura parĆ¢metros da query string.
    • Exemplo:

    java

    @GetMapping("/produtos")
    public List<Produto> filtrar(@RequestParam String categoria) {
      return produtoService.filtrarPorCategoria(categoria);
    }
    

    šŸ“Œ @RequestBody

    • Função: Mapeia o corpo da requisição (geralmente JSON) para um objeto Java.
    • Exemplo:

    java

    @PostMapping("/clientes")
    public Cliente criar(@RequestBody Cliente cliente) {
      return clienteService.salvar(cliente);
    }
    

    šŸ“Œ @ResponseStatus

    • Função: Define o status HTTP da resposta.
    • Exemplo:

    java

    @PostMapping("/clientes")
    @ResponseStatus(HttpStatus.CREATED)
    public Cliente criar(@RequestBody Cliente cliente) {
      return clienteService.salvar(cliente);
    }
    

    šŸ“Œ @CrossOrigin

    • Função: Permite requisiƧƵes de outros domĆ­nios (CORS), Ćŗtil para integração com front-end.
    • Exemplo:

    java

    @CrossOrigin(origins = "http://localhost:3000")
    @GetMapping("/produtos")
    public List<Produto> listar() {
      return produtoService.listarTodos();
    }
    

    šŸ“Œ @ControllerAdvice e @ExceptionHandler

    • Função: Tratamento global de exceƧƵes, permitindo capturar e responder erros de forma centralizada.
    • Exemplo:

    java

    @ControllerAdvice
    public class ErroHandler {
    
      @ExceptionHandler(EntidadeNaoEncontradaException.class)
      public ResponseEntity<String> tratarErro(EntidadeNaoEncontradaException ex) {
          return ResponseEntity.status(HttpStatus.NOT_FOUND).body(ex.getMessage());
      }
    }
    

    🧠 Conclusão

    As anotações para Web REST Controllers no Spring Boot são ferramentas poderosas que tornam o desenvolvimento de APIs mais fluido, organizado e expressivo. Dominar essas anotações é essencial para criar aplicações robustas, escalÔveis e fÔceis de manter.

    Se você estÔ construindo uma API ou apenas aprimorando seu conhecimento, entender essas anotações é um passo fundamental para escrever código limpo e eficiente. E lembre-se: quanto mais você pratica, mais natural o uso dessas ferramentas se torna.

    Share
    Recommended for you
    AWS - Agentes de IA em Campo
    Michael Page - Criando Seu Primeiro Agente de IA
    Sem Parar Corpay - Back-end do Zero a PrƔtica
    Comments (2)
    João Santos
    João Santos - 23/09/2025 11:30

    O maior desafio para um desenvolvedor iniciante Ć© compreender como as anotaƧƵes do Spring Boot trabalham juntas para mapear corretamente cada requisição HTTP ao mĆ©todo correspondente — em vez de apenas fazer a aplicação ā€œfuncionarā€, Ć© preciso entender que cada anotação tem um papel especĆ­fico na definição da rota, no tipo de requisição (GET, POST etc.), na extração de parĆ¢metros e no tratamento do corpo da requisição; sem essa clareza, o código pode funcionar de forma instĆ”vel ou confusa, dificultando a manutenção e a escalabilidade da API.

    DIO Community
    DIO Community - 22/09/2025 10:53

    Excelente, JoĆ£o! Que artigo incrĆ­vel e super completo sobre "AnotaƧƵes do Spring Boot para Web REST Controllers"! Ɖ fascinante ver como vocĆŖ aborda o uso de anotaƧƵes como a forma mais eficiente e elegante de desenvolver APIs RESTful com Spring Boot.

    VocĆŖ demonstrou que as anotaƧƵes sĆ£o a chave para configurar rotas, manipular dados da requisição e estruturar o comportamento dos controladores de forma clara e concisa. Sua anĆ”lise das anotaƧƵes essenciais — @RestController, @RequestMapping, @GetMapping, @PostMapping, @PathVariable, @RequestParam e @RequestBody — Ć© um guia fundamental para qualquer desenvolvedor Java.

    Qual você diria que é o maior desafio para um desenvolvedor iniciante ao entender o fluxo de requisições em uma API Spring Boot, em termos de como as anotações interagem entre si e como a requisição é mapeada para o método correto, em vez de apenas focar em fazer a aplicação funcionar?