ANÚNCIO

~/questoes/programacao

Qual método HTTP é apropriado para atualizar um recurso existente?

Responda, confira o feedback e use o resultado para orientar sua revisão.
Para fixar

Métodos HTTP para Atualizar Recursos em API REST

Conceito central

Em uma API REST, cada método HTTP tem um propósito específico. Para atualizar um recurso existente no servidor, você deve usar PUT (para substituição completa) ou PATCH (para atualizações parciais), nunca POST ou GET para essa finalidade.

Por que essa resposta faz sentido

PUT e PATCH são os métodos corretos para atualizar recursos. PUT substitui o recurso inteiro com novos dados, enquanto PATCH permite atualizar apenas alguns campos. Ambos modificam dados existentes, diferentemente de POST (criação) e GET (leitura).

Armadilhas comuns

  • Confundir POST com PUT: POST cria novos recursos, PUT atualiza existentes. São operações diferentes com semânticas distintas.
  • Usar GET para enviar dados de atualização: GET deve ser somente leitura. Nunca use GET para modificar dados no servidor.
  • Não diferenciar PUT e PATCH: PUT substitui tudo, PATCH atualiza parcialmente. Escolher certo melhora a eficiência da API.

Entenda as alternativas

A

POST é usado para criar novos recursos, não para atualizar existentes. Embora POST possa parecer que sobrescreve dados, semanticamente ele deveria criar um novo recurso, não modificar um existente.

B

GET é exclusivamente para recuperar dados do servidor. Ele nunca deve enviar modificações. Usar GET para atualizar viola os princípios REST e pode causar comportamentos inesperados em caches e proxies.

C

PUT e PATCH são os métodos apropriados. PUT substitui completamente o recurso, ideal quando você tem todos os dados novos. PATCH aplica atualizações parciais, perfeito quando quer modificar apenas alguns campos sem reenviar tudo.

D

DELETE remove um recurso, não o atualiza. Criar um novo recurso com POST após deletar o antigo é ineficiente e semanticamente incorreto em uma API REST bem projetada.

Dica prática: Ao projetar endpoints em FastAPI, use @app.put("/recurso/{id}") para atualizações completas e @app.patch("/recurso/{id}") para atualizações parciais. Isso deixa sua API intuitiva e segue o padrão REST que a maioria das aplicações cliente espera.

Revise pensando: Se você precisa atualizar apenas o email de um usuário sem reenviar todo o cadastro, qual método HTTP escolheria: PUT ou PATCH?