API REST com Java e Spring Boot

API REST com Java e Spring Boot (Parte 4)


Um passo a passo para você aprender a fazer uma API REST com Java e Spring Boot do começo ao fim — Parte 4: Métodos PUT e DELETE


Esta é a parte 4 da série API REST com Java e Spring Boot. Se você chegou direto aqui, comece pela parte 1.

A fim de termos um CRUD completo, nesta parte faremos a implementação do “U” —update (atualizar) — e do “D” — delete (remover).

API REST com Java e Spring Boot

Tal como fizemos com o Create (criar) e com o Read (ler), a implementação aqui também é bastante simples. Como já explicamos o que é um DTO e como se dá a transferência dos dados entre as camadas (controllerservice e repository), vamos nos reter aqui à criação dos métodos no Service e como eles serão chamados no Controller.

Método PUT

Na classe UserService, vamos chamar o nosso método de atualização de updateById, que retorna um UserDto. Ele recebe como parâmetros um UserUpdateForm e o id. Precisamos de um novo DTO, específico para o update, pois nossa aplicação permitirá que o usuário modifique apenas seu nome e seu e-mail, mas não seu CPF e nem sua data de nascimento.

Método updateById na classe UserService
Método updateById na classe UserService

Desse modo, criamos então a classe UserUpdateForm com apenas os atributos necessários e as anotações do Lombok e da Validation.

Classe UserUpdateForm
Classe UserUpdateForm

Voltando à classe de serviço, vemos que o método updateById primeiramente realiza algumas verificações e coloca os novos valores aos atributos a serem alterados. Depois, com o mesmo método save do Repository — o qual já usamos no método createUser — salvamos os dados no banco e retornamos o UserDto atualizado.

Método updateById na classe UserController
Método updateById na classe UserController

Por fim, na classe do Controller basta utilizarmos a anotação @PutMapping sobre o método e passar como parâmetro o caminho. Esse método, também chamado de updateById, recebe os mesmos parâmetros que vimos no Service, porém agora com o @RequestBody e o @PathVariable, que já foram explicados anteriormente. Depois só precisamos retornar o UserDto que foi criado, utilizando para isso o userService.

Método DELETE

Remover um usuário é bastante simples. Como não adicionaremos informação no banco, não precisamos criar um novo DTO. Para deletar um usuário com base em seu id, basta utilizarmos o método existsById (para verificar se o id passado existe) e então remover o objeto que possui esse id com o método deleteById. Ambos os métodos já vêm prontos do Repository.

Método deleteById na classe UserService
Método deleteById na classe UserService

Feito isso, é só criarmos o nosso método deleteById do Service em nosso Controller e passar o id como parâmetro. Não podemos esquecer da anotação @DeleteMapping com o caminho e a @PathVariable no parâmetro.

Método deleteById na classe UserController
Método deleteById na classe UserController

Pronto. Fazendo esses pequenos ajustes, já temos agora o nosso CRUD completo. Podemos criar um novo usuário no banco de dados, podemos resgatar os dados e ler as informações, podemos atualizar os dados e, por fim, podemos remover usuários com base no id.

É claro que seria possível fazer muitas melhorias no código, deixá-lo mais limpo e até com lógicas mais bem elaboradas e interações melhores com o cliente. Mas para nossos objetivos aqui, isso já está de bom tamanho.

Na próxima etapa, Parte 5, faremos os testes de todos os métodos no Postman.

Você pode ver o código completo no GitHub.


Está entrando no mundo da programação? Uma boa dica para iniciar seus estudos são os livros Lógica de Programação – JavaScript e HTML e Entendendo Algoritmos – guia ilustrado.

Está interessado em consumir uma API externa? Veja o artigo Consumindo API com Java, Spring Boot e Gradle.

Quer saber mais sobre APIs REST? Leia nosso artigo sobre as 9 melhores práticas!


Posts relacionados

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *