Chegamos à aula que fecha o ciclo básico de operações da nossa API (o famoso CRUD: Criar, Ler, Atualizar e Deletar). Nesta aula, vamos implementar o método DELETE para remover um estudante específico da nossa lista utilizando uma técnica muito inteligente de corte de fatias no Go.
Abra o seu arquivo main.go e insira a nova função removerProduto, mapeando a rota DELETE /produtos/{codigo} na função principal. Veja abaixo a estrutura da função de remoção:
// Função para remover um produto específico
func removerProduto(c *gin.Context) {
// Extrair o código do produto via URL
codigo := c.Param("codigo")
// Laço de repetição para localizar o produto na lista e remover
for indice, produto := range produtos {
// Condicional
if produto.Codigo == codigo {
produtos = append(produtos[:indice], produtos[indice+1:]...)
c.JSON(http.StatusOK, gin.H{"mensagem": "Produto removido."})
return
}
}
// Retorno do endpoint caso o produto não seja encontrado
c.JSON(http.StatusNotFound, gin.H{"mensagem": "Produto não encontrado."})
}
Agora podemos atualizar a função principal:
// Função principal
func main() {
// Roteador
r := gin.Default()
// Rotas
r.GET("/", helloWorld)
r.GET("/produtos", listarProdutos)
r.POST("/produtos", cadastrarProduto)
r.PUT("/produtos/:codigo", alterarProduto)
r.DELETE("/produtos/:codigo", removerProduto)
// Configurar o servidor
r.Run(":8080")
}
Abra o seu cliente HTTP (Postman ou Thunder Client) para fazer a validação completa:
POST e copie o campo codigo que retornou na resposta.GET /produtos para ter certeza de que ele está salvo.DELETE e configure a URL colando o código no final (ex: http://localhost:8080/produtos/COLE_O_CODIGO_AQUI). Clique em enviar.