O que é o método DELETE?

Prévia grátis 4 min de leitura

O método DELETE

O método DELETE é um verbo HTTP usado para remover um recurso do servidor.

Imagine que você tem um aplicativo de lista de tarefas. Você terminou uma tarefa e quer removê-la permanentemente: isso é o que uma requisição DELETE faz. Você diz ao servidor: "Eu não preciso mais deste recurso. Por favor, remova-o."


DELETE na família CRUD

Os verbos HTTP mapeiam diretamente para as quatro operações fundamentais de banco de dados conhecidas como CRUD:

Operação Verbo HTTP Propósito
Create (Criar) POST Adicionar um novo recurso
Read (Ler) GET Recuperar um recurso
Update (Atualizar) PUT / PATCH Modificar um recurso existente
Delete (Deletar) DELETE Remover um recurso

O DELETE completa o ciclo. Sem ele, as aplicações só poderiam acumular dados, mas nunca limpá-los.


Como o DELETE funciona

Uma requisição DELETE é direta:

  1. O cliente envia uma requisição DELETE para uma URL de recurso específica
  2. O servidor localiza o recurso
  3. O servidor o remove (ou marca como removido)
  4. O servidor responde com um código de status confirmando o resultado
DELETE /api/tasks/42 HTTP/1.1
Host: example.com
Authorization: Bearer abc123

Repare que não há corpo na requisição. Diferente de POST, PUT ou PATCH, você não precisa enviar nenhum dado: a própria URL identifica o que deve ser deletado.


Características principais

Idempotente

O DELETE é idempotente, o que significa que enviar a mesma requisição DELETE várias vezes produz o mesmo resultado que enviá-la uma vez. A primeira requisição deleta o recurso. Requisições subsequentes encontram o recurso já removido: o estado do servidor não muda mais.

Essa é uma propriedade importante para a confiabilidade da rede. Se um cliente envia uma requisição DELETE e nunca recebe uma resposta (devido a um timeout de rede), ele pode reenviar a requisição com segurança sem se preocupar com efeitos colaterais indesejados.

Não é seguro

Na terminologia HTTP, um método é "seguro" se ele não modifica o estado do servidor. GET e HEAD são métodos seguros. DELETE não é seguro porque ele altera o servidor removendo dados.

Nenhum corpo de requisição necessário

A especificação HTTP permite um corpo em requisições DELETE, mas a maioria dos servidores e frameworks o ignora. O recurso a ser deletado é identificado inteiramente pela URL. Isso mantém as requisições DELETE simples e previsíveis.


Exemplos do mundo real

Você usa operações DELETE constantemente, mesmo que não perceba:

  • Removendo uma postagem de rede social: DELETE /posts/789
  • Cancelando a assinatura de uma newsletter: DELETE /subscriptions/45
  • Deletando uma conta de usuário: DELETE /users/12
  • Removendo um item do carrinho de compras: DELETE /cart/items/3
  • Cancelando um pedido pendente: DELETE /orders/101

Toda vez que você clica em "Deletar", "Remover" ou "Cancelar" em uma aplicação web, provavelmente há uma requisição DELETE sendo enviada nos bastidores.


DELETE vs outros métodos

Característica GET POST PUT PATCH DELETE
Propósito Ler Criar Substituir Atualização parcial Remover
Tem corpo? Não Sim Sim Sim Não
Idempotente? Sim Não Sim Não Sim
Seguro? Sim Não Não Não Não
Cacheável? Sim Não Não Não Não

O DELETE compartilha a idempotência com GET e PUT, mas diferente do GET, ele modifica o estado do servidor.


Resumo

Conceito Ponto Chave
Propósito Remover um recurso do servidor
Papel no CRUD O "D" em Create, Read, Update, Delete
Corpo da requisição Não necessário: a URL identifica o recurso
Idempotente Sim: repetir a mesma requisição não tem efeito adicional
Seguro Não: modifica o estado do servidor removendo dados
Uso comum Botões de deletar, ações de remover, cancelamento de conta
Aula 1 de 7 · grátis

Continue com a aula 2

A requisição DELETE

Detalha a requisição DELETE em método, URL e headers, com autorização, tokens CSRF e o header If-Match.

Com uma conta grátis você também tem os quizzes, seu progresso e suas anotações, e a discussão.

Digite para buscar...