Sobes.tech
Junior — Middle

Explique as diferenças entre os métodos HTTP PUT e PATCH ao atualizar recursos.

sobes.tech IA

Resposta da IA

As principais diferenças entre os métodos HTTP PUT e PATCH ao atualizar recursos:

  • PUT — é usado para uma atualização completa do recurso. O cliente envia uma representação completa do recurso, e o servidor substitui o recurso existente por essa nova.
  • PATCH — é usado para uma atualização parcial do recurso. O cliente envia apenas os campos que deseja modificar, e o servidor atualiza apenas esses campos, deixando os outros inalterados.

Exemplo:

Se tiver um objeto de usuário com os campos name e email:

  • Com uma requisição PUT, deve enviar ambos os campos, caso contrário, os ausentes serão removidos ou redefinidos.
  • Com uma requisição PATCH, pode enviar apenas email, e o servidor atualizará apenas esse campo.

Em C# Web API, os métodos podem parecer assim:

[HttpPut("users/{id}")]
public IActionResult UpdateUser(int id, User user) {
    // Atualização completa do usuário
}

[HttpPatch("users/{id}")]
public IActionResult PatchUser(int id, JsonPatchDocument<User> patchDoc) {
    // Atualização parcial do usuário
}

Assim, PUT é um método idempotente para substituição total, PATCH para alterações parciais.