O método HTTP é uma das partes mais importantes do desenvolvimento de aplicativos da web. Ele define o conjunto de operações que os aplicativos podem executar em um servidor web. Dois dos métodos mais comuns em RESTful APIs são o PUT e o PATCH. Ambos são usados para atualizar recursos em um servidor, mas existem diferenças cruciais entre eles. Neste artigo, vamos analisar a diferença entre os métodos PUT e PATCH e como usar corretamente o método PATCH.
O que é o Método HTTP PUT?
O método PUT é usado para atualizar completamente um recurso no servidor. Isso significa que, quando você envia uma solicitação PUT para um servidor, ela deve incluir todo o recurso, não apenas as alterações. O servidor então substitui o recurso existente com o que você enviou na solicitação PUT. Se um recurso não existir no servidor, o PUT criará um novo recurso.
Exemplo de uma solicitação PUT
PUT /api/users/1 HTTP/1.1 Host: example.com Content-Type: application/json { "name": "John Doe", "age": 30, "email": "johndoe@example.com" }
O que é o Método HTTP PATCH?
O método PATCH é usado para atualizar parcialmente um recurso no servidor. Isso significa que, quando você envia uma solicitação PATCH para um servidor, ela inclui apenas as alterações que você deseja fazer. O servidor então aplica essas alterações ao recurso existente, mantendo todas as outras partes do recurso inalteradas.
Exemplo de uma solicitação PATCH
PUT /api/users/1 HTTP/1.1 Host: example.com Content-Type: application/json { "name": "John Doe", "age": 30, "email": "johndoe@example.com" }
Neste exemplo, a solicitação PATCH atualiza apenas o nome e a idade do recurso existente com o ID 1. Todas as outras partes do recurso permanecem inalteradas.
Qual é a diferença entre PUT e PATCH?
A principal diferença entre PUT e PATCH é que PUT é usado para atualizar completamente um recurso, enquanto PATCH é usado para atualizar parcialmente um recurso. Ao usar o método PUT, você precisa enviar o recurso inteiro novamente, mesmo que apenas uma pequena parte dele tenha sido alterada. Com o método PATCH, você pode enviar apenas as alterações que deseja fazer.
Outra diferença entre PUT e PATCH é como eles lidam com recursos que não existem no servidor. Quando você envia uma solicitação PUT para um recurso que não existe, o servidor cria um novo recurso com o que você enviou. Por outro lado, quando você envia uma solicitação PATCH para um recurso que não existe, o servidor retorna um erro.
Quando usar o Método HTTP PATCH?
O método PATCH é especialmente útil em situações em que você precisa atualizar apenas algumas partes de um recurso grande. Usar o método PATCH economiza largura de banda e reduz o tempo de resposta do servidor, pois você envia apenas as alterações necessárias. Ele também ajuda a evitar conflitos de versão quando vários usuários estão trabalhando no mesmo recurso simultaneamente.
Considerações Finais
A escolha entre PUT e PATCH dependerá das necessidades específicas do seu aplicativo. Se você precisar atualizar completamente um recurso, use PUT. Se você precisar atualizar apenas algumas partes de um recurso, use PATCH.
Para usar corretamente o método PATCH, você deve ter uma compreensão clara de quais partes do recurso deseja atualizar e como essas alterações afetarão o recurso como um todo. Você também deve estar ciente de que o servidor pode não suportar o método PATCH, portanto, verifique a documentação do servidor antes de usá-lo.
Em resumo, PUT é usado para atualizar completamente um recurso e PATCH é usado para atualizar parcialmente um recurso. Ao usar o método PATCH, você envia apenas as alterações que deseja fazer, o que economiza largura de banda e reduz o tempo de resposta do servidor. A escolha entre PUT e PATCH dependerá das necessidades específicas do seu aplicativo, portanto, certifique-se de entender as diferenças entre os dois métodos antes de decidir qual usar.
FAQ
Qual é a diferença entre PUT e PATCH?
A diferença entre PUT e PATCH em uma API REST é que PUT manipula atualizações substituindo a entidade inteira, enquanto PATCH atualiza apenas os campos que você especificar.
Devo usar PUT ou PATCH?
Se você possui uma aplicação simples com entidades pequenas, é provável que utilizar PUT seja mais fácil, pois você pode modelar sua funcionalidade de “criação” e “atualização” a partir do mesmo código. Mas se você estiver fazendo muitas atualizações, por exemplo, em um recurso de dashboard, ter um controle mais granular com PATCH é melhor.
Os pedidos PATCH têm um corpo?
Sim. Os pedidos PATCH têm um corpo que contém as instruções para modificar ou adicionar dados a um recurso existente.
Qual código de status HTTP deve ser retornado pelo PATCH?
Os pedidos PATCH bem-sucedidos devem retornar um código de status da faixa 2xx. Os dois mais comuns são 204 (Sem Conteúdo) se não houver dados de resposta e 200 (OK) se houver dados de resposta.
Qual código de status HTTP deve ser retornado pelo PUT?
Os pedidos PUT bem-sucedidos devem retornar um código de status da faixa 2xx. Se o recurso desejado ainda não tiver uma representação atual e o pedido PUT criar uma, o servidor de origem deve enviar uma resposta 201 (Criado) ao cliente.
Posso usar tanto PUT quanto PATCH?
Sim, você pode projetar suas APIs para suportar PUT e PATCH, pois eles têm propósitos e casos de uso diferentes.