Spring Boot: Entendendo as Anotações do @RestController
@RestController
Spring Boot: Entendendo as Anotações do @RestController
@RestController
RestController é uma marcação adicionada em classes que são Controlladoras e ele faz com que automaticamente todos os métodos da classe retornem em Json.
@RequestMapping
Mano, isso basicamente retorna a rota BASE do controlador da sua entidade, ou seja, toda requisição que o usuário for fazer, ele vai usar esse parâmetro que você definir na marcação @RequestMapping.
Parâmetro
@RequestMapping recebe como parâmetro uma String, que será o nome da rota.
Exemplo:
@RestController
@RequestMapping("/usuarios")
public class UsuarioController {
@GetMapping("/listar")
public String listarUsuarios() {
return "Listando todos os usuários!";
}
}
👉 Todas as rotas dentro desse controller terão o prefixo /usuarios.
@GetMapping
É usado em QUALQUER MÉTODO que seja um GET
Exemplo:
@GetMapping("/mensagem")
public String getMensagem() {
return "Olá, mundo!";
}
👉 Requisição: **GET [http://localhost:8080/mensagem](http://localhost:8080/mensagem)**O
@PostMapping
Usado em todo método que faz POST.
Exemplo:
@PostMapping("/adicionar")
public Usuario adicionarUsuario(@RequestBody Usuario usuario) {
return usuario; // Simulando um retorno do usuário criado
}
👉 Requisição: **POST http://localhost:8080/adicionar
O `@RequestBody` permite receber um JSON no corpo da requisição**.
Exemplo de Json enviado no POST:
{
"nome": "Thiago",
"email": "thiago@email.com"
}
@PutMapping
Usado em todo método que faz requisições PUT, que geralmente atualizam um objeto existente (update).
Exemplo:
@PutMapping("/atualizar/{id}")
public String atualizarUsuario(@PathVariable Long id, @RequestBody Usuario usuario) {
return "Usuário com ID " + id + " atualizado com sucesso!";
}
👉 Requisição: **PUT http://localhost:8080/atualizar/1
O `@PathVariable`** captura o ID da URL.
Exemplo de json enviado no PUT:
{
"nome": "Thiago Atualizado",
"email": "thiago@email.com"
}
@DeleteMapping
Usamos isso em todo método que DELETA algum objeto.
Exemplo:
@DeleteMapping("/remover/{id}")
public String removerUsuario(@PathVariable Long id) {
return "Usuário com ID " + id + " removido!";
}
👉 Requisição: **DELETE http://localhost:8080/remover/1
O `@PathVariable`** pega o ID a ser removido.
@RequestParam
Captura parâmetros de consulta (query parameters) na URL.
Toda vez que usamos @RequestParam em um parâmetro de uma requisição, significa que aquele parâmetro será recebido por meio da URL da requisição.
Exemplo:
@GetMapping("/buscar")
public String buscarUsuario(@RequestParam String nome) {
return "Buscando usuário com nome: " + nome;
}
👉 Requisição: **GET [http://localhost:8080/buscar?nome=Thiago](http://localhost:8080/buscar?nome=Thiago)**
@PathVariable
Captura valores da URL.
@GetMapping("/usuario/{id}")
public String obterUsuario(@PathVariable Long id) {
return "Usuário com ID: " + id;
}
👉 Requisição: **GET [http://localhost:8080/usuario/10](http://localhost:8080/usuario/10)**
@ResponseStatus
Quando adicionamos em um método, define o status HTTP que será retornado. (200, 300, 400, 500)
Exemplo:
@PostMapping("/criar")
@ResponseStatus(HttpStatus.CREATED) // Retorna HTTP 201 (Created)
public Usuario criarUsuario(@RequestBody Usuario usuario) {
return usuario;
}
@ExceptionHandler
Trata exceções personalizadas.
Exemplo:
@ExceptionHandler(UsuarioNaoEncontradoException.class)
@ResponseStatus(HttpStatus.NOT_FOUND)
public String handleUsuarioNaoEncontrado(UsuarioNaoEncontradoException ex) {
return ex.getMessage();
}
Exemplo de @RestController com todas as anotações:
@RestController
@RequestMapping("/usuarios")
public class UsuarioController {
@GetMapping("/{id}")
public String obterUsuario(@PathVariable Long id) {
return "Usuário com ID: " + id;
}
@GetMapping("/buscar")
public String buscarUsuario(@RequestParam String nome) {
return "Buscando usuário com nome: " + nome;
}
@PostMapping("/criar")
@ResponseStatus(HttpStatus.CREATED)
public Usuario criarUsuario(@RequestBody Usuario usuario) {
return usuario;
}
@PutMapping("/atualizar/{id}")
public String atualizarUsuario(@PathVariable Long id, @RequestBody Usuario usuario) {
return "Usuário com ID " + id + " atualizado com sucesso!";
}
@DeleteMapping("/remover/{id}")
public String removerUsuario(@PathVariable Long id) {
return "Usuário com ID " + id + " removido!";
}
@ExceptionHandler(UsuarioNaoEncontradoException.class)
@ResponseStatus(HttpStatus.NOT_FOUND)
public String handleUsuarioNaoEncontrado(UsuarioNaoEncontradoException ex) {
return ex.getMessage();
}
}
Resumão de cria 🔥

메타데이터
- post_id
- 3d63a20badcc
- slug
- spring-boot-entendendo-as-anotações-do-restcontroller-3d63a20badcc
- url
- https://medium.com/@thiagoprogramador70x7/spring-boot-entendendo-as-anota%C3%A7%C3%B5es-do-restcontroller-3d63a20badcc
- canonical_url
- https://medium.com/@thiagoprogramador70x7/spring-boot-entendendo-as-anota%C3%A7%C3%B5es-do-restcontroller-3d63a20badcc
- author_url
- https://medium.com/@thiagoprogramador70x7
- status
- ok
- fetched_at
- 2026-08-03 07:38:58