O que é o método DELETE?
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:
- O cliente envia uma requisição
DELETEpara uma URL de recurso específica - O servidor localiza o recurso
- O servidor o remove (ou marca como removido)
- 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 |
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.