Programming on Mars
/
REST APIFundamentosProgramaçãoEngenharia de Software

Diferença Entre PUT e PATCH

Qual a diferença entre PUT e PATCH

André Lucas

July 18, 2024

Diferença Entre PUT e PATCH

Olá, o objetivo deste formato de história é ser rápido e te contar fundamentos onde às vezes não nos questionamos no nosso dia a dia.

Qual é a principal diferença entre PUT e PATCH?

Então, vamos criar um cenário onde você tem um e-commerce e um endpoint é responsável por criar um produto.

Diagrama de serviço e-commerce

Após criar um novo produto. Percebemos que o preço estava errado. A primeira coisa normal é ter um endpoint para "atualizar" a entidade inteira passando o ID.

Diagrama de atualização PUT

Normalmente esta é uma situação comum. Alguns desenvolvedores diriam que PUT é para atualizar, mas não é realmente, PUT é para substituir completamente ou criar.

Sim, o produto 111 poderia não existir e poderíamos criá-lo.

Para melhorar isso, podemos usar o verbo PATCH, porque só queremos mudar o preço, ok?

Diagrama PATCH

PATCH

Então o patch é para atualizar campos individuais dos recursos existentes.

Poderíamos fazer algo como

Diagrama de mudança de preço PATCH

Se o produto 111 não existir, receberemos um erro.

Claro que no cenário PUT, podemos verificar se existe uma entidade antes ou dependendo da forma que estamos implementando a camada de banco de dados da nossa aplicação provavelmente também receberemos um erro, mas em teoria é possível criar em vez de retornar um erro.

Conclusão

Se você quiser ter um endpoint que apenas modifica campos individuais de acordo com RFC 5789 deve usar o verbo PATCH.

Se você quiser ter um endpoint para modificar completamente um recurso devemos usar o verbo PUT de acordo com RFC 2616.

Tags

REST APIFundamentosProgramaçãoEngenharia de Software
← Back to home