As requisições HTTP são a espinha dorsal do desenvolvimento web moderno. Elas nos permitem interagir com APIs e recuperar dados de servidores. Duas das requisições HTTP mais comumente usadas são PUT e PATCH. Neste post do blog, exploraremos as diferenças entre essas duas requisições e quando usá-las.
O que é uma API?
Antes de mergulharmos nas diferenças entre PUT e PATCH, vamos primeiro definir o que é uma API. Uma API significa Interface de Programação de Aplicações. É um conjunto de regras definidas que permite que diferentes aplicações se comuniquem entre si. APIs atuam como uma camada intermediária que processa transferências de dados entre sistemas, permitindo que empresas abram seus dados de aplicação e funcionalidade para desenvolvedores externos, parceiros de negócios e departamentos internos dentro de suas empresas.
As definições e protocolos dentro de uma API ajudam as empresas a conectar as muitas aplicações diferentes que usam em suas operações diárias, economizando tempo dos funcionários e quebrando silos que dificultam a colaboração e a inovação. Para os desenvolvedores, a documentação da API fornece a interface para comunicação entre aplicações, simplificando a integração de aplicações. APIs são usadas para preencher as lacunas entre pequenos trechos discretos de código para criar aplicações que são poderosas, resilientes, seguras e capazes de atender às necessidades dos usuários.
Visão geral dos métodos HTTP?
HTTP (Protocolo de Transferência de Hipertexto) é um protocolo de camada de aplicação usado para transmitir documentos hipermídia, como HTML, pela internet. Ele facilita a comunicação entre navegadores web e servidores web, mas também pode ser usado para outros fins. O HTTP funciona como um protocolo cliente-servidor, com requisições normalmente iniciadas pelo destinatário, geralmente o navegador web. O documento completo é reconstruído a partir de diferentes sub-documentos recuperados, incluindo texto, descrição de layout, imagens, vídeos, scripts e mais.
Clientes e servidores se comunicam trocando mensagens individuais (em vez de um fluxo contínuo de dados). As mensagens enviadas pelo cliente (geralmente um navegador web) são chamadas de requisições, e as mensagens enviadas pelo servidor em resposta são chamadas de respostas. O HTTP é um protocolo extensível que evoluiu ao longo do tempo e é enviado sobre TCP ou sobre uma conexão TCP criptografada com TLS. Devido à sua extensibilidade, ele é usado não apenas para recuperar documentos de hipertexto, mas também para recuperar imagens e vídeos ou para enviar conteúdo para servidores, como acontece com os resultados de formulários HTML. Além disso, o HTTP pode ser usado para buscar partes de documentos para atualizar páginas web sob demanda.
Introdução ao HTTP PUT
HTTP PUT é um método HTTP usado para criar um novo recurso ou sobrescrever uma representação do recurso-alvo que é conhecido pelo cliente. É semelhante ao método HTTP POST, que é usado para adicionar um recurso no servidor.

No entanto, ao contrário do POST, PUT é idempotente, o que significa que chamá-lo uma vez ou várias vezes consecutivas tem o mesmo efeito (ou seja, sem efeito colateral). Se o Request-URI se referir a um recurso já existente, a entidade contida deve ser considerada como uma versão modificada da que reside no servidor de origem.
Compreendendo HTTP PATCH
HTTP PATCH é um método de requisição usado para fazer modificações parciais em um recurso existente. É semelhante ao método HTTP PUT, que é usado para criar um novo recurso ou sobrescrever uma representação do recurso-alvo que é conhecido pelo cliente. No entanto, ao contrário do PUT, o PATCH é usado para modificar apenas uma parte do recurso, enquanto o PUT substitui o recurso inteiro.

O método PATCH fornece uma entidade contendo uma lista de mudanças a serem aplicadas ao recurso solicitado usando o Identificador Uniforme de Recurso (URI) HTTP. A lista de mudanças é fornecida na forma de um documento PATCH. O método PATCH é usado para atualizar recursos com dados JSON parciais.
Quando usar HTTP PUT
HTTP PUT é usado para criar um novo recurso ou sobrescrever uma representação do recurso-alvo que é conhecido pelo cliente. É adequado para cenários onde você tem controle total sobre a substituição do recurso.
A diferença entre HTTP PUT e HTTP POST é que o PUT é idempotente, o que significa que chamá-lo uma vez ou várias vezes consecutivas tem o mesmo efeito (ou seja, sem efeito colateral). Se o Request-URI se referir a um recurso já existente, a entidade contida deve ser considerada como uma versão modificada da que reside no servidor de origem.

HTTP PUT é melhor utilizado quando você deseja substituir completamente um recurso existente por novos dados. Por exemplo, se você tiver um perfil de usuário que contém vários campos, como nome, e-mail e número de telefone, e deseja atualizar todos esses campos de uma só vez, você usaria uma requisição PUT.
Aqui está um exemplo de como você poderia usar uma requisição HTTP PUT para atualizar o conteúdo de um arquivo existente em um servidor:
PUT /example.html HTTP/1.1
Host: sample.com
Content-Type: text/html
Content-Length: 20
<p>Arquivo Atualizado</p>
Neste exemplo, a requisição PUT é enviada para o recurso localizado em /example.html
. O cabeçalho Content-Type
especifica que o corpo da requisição está em formato HTML. O cabeçalho Content-Length
indica o tamanho do corpo da requisição, que neste caso é de 20 bytes. O corpo da requisição contém o novo conteúdo para o arquivo, que é um simples elemento de parágrafo HTML com o texto "Arquivo Atualizado". Se o arquivo existir e o servidor processar a requisição com sucesso, ele substituirá o conteúdo de example.html
pelo novo conteúdo fornecido no corpo da requisição.
Quando usar HTTP PATCH
HTTP PATCH é usado para fazer modificações parciais em um recurso existente. É adequado para cenários onde você precisa atualizar apenas uma parte do recurso, enquanto o PUT substitui o recurso inteiro.
Por exemplo, ao atualizar um único campo do recurso, enviar a representação completa do recurso pode ser trabalhoso e usa muita largura de banda desnecessária. Uma requisição PATCH é considerada um conjunto de instruções sobre como modificar um recurso.
HTTP PATCH é melhor usado quando você deseja atualizar um único campo ou alguns poucos campos em um recurso existente. Por exemplo, se você tiver um perfil de usuário que contém múltiplos campos como nome, e-mail e número de telefone, e você só quiser atualizar o campo de e-mail, você usaria uma requisição PATCH.
Aqui está um exemplo de como você poderia usar uma requisição HTTP PATCH para atualizar o endereço de e-mail de um usuário em um sistema:
PATCH /api/users/123 HTTP/1.1
Host: www.example.com
Content-Type: application/json
If-Match: "e0023aa4e"
{
"email": "novonome@example.com"
}
Neste exemplo, a requisição PATCH é enviada para o recurso localizado em /api/users/123
. O cabeçalho Content-Type
especifica que o corpo da requisição está em formato JSON. O cabeçalho If-Match
é usado para garantir que a atualização seja aplicada apenas se a eTag
(um identificador de versão para o recurso) corresponder àquela fornecida. O corpo da requisição contém a mudança a ser aplicada, que neste caso é uma atualização do endereço de e-mail do usuário. O servidor processaria esta requisição e aplicaria a atualização às informações do usuário. Se bem-sucedido, o servidor poderia responder com um código de status 200 OK
e possivelmente incluir o recurso atualizado no corpo da resposta.
Diferenças entre HTTP PUT e PATCH
HTTP PUT e HTTP PATCH são ambos métodos HTTP usados para modificar recursos, mas diferem na forma como atualizam o recurso.

HTTP PUT é usado para criar um novo recurso ou sobrescrever uma representação do recurso-alvo que é conhecido pelo cliente. É adequado para cenários onde você tem controle total sobre a substituição do recurso. Se o Request-URI se referir a um recurso já existente, a entidade contida deve ser considerada como uma versão modificada da que reside no servidor de origem.
HTTP PATCH é usado para fazer modificações parciais em um recurso existente. É adequado para cenários onde você precisa atualizar apenas uma parte do recurso, enquanto o PUT substitui o recurso inteiro. O método PATCH fornece uma entidade contendo uma lista de mudanças a serem aplicadas ao recurso solicitado usando o Identificador Uniforme de Recurso (URI) HTTP. A lista de mudanças é fornecida na forma de um documento PATCH.
A principal diferença entre HTTP PUT e PATCH é a quantidade de dados que são enviados na requisição. O PUT envia o recurso inteiro, enquanto o PATCH envia apenas os campos que estão sendo atualizados. Isso significa que as requisições PUT são mais custosas em termos de largura de banda e poder de processamento do que as requisições PATCH.
Vantagens do HTTP PUT
HTTP PUT é um método de requisição que é usado para atualizar ou substituir um recurso existente no servidor. Alguns dos benefícios de usar o HTTP PUT incluem:
- Idempotência: O HTTP PUT é um método idempotente, o que significa que a mesma requisição pode ser feita várias vezes sem causar efeitos colaterais.
- Atomicidade: O HTTP PUT é uma operação atômica, o que significa que ou ela é bem-sucedida completamente ou falha completamente. Isso a torna útil para atualizar recursos que têm múltiplos campos.
- Interface uniforme: O HTTP PUT segue a restrição de interface uniforme dos serviços web RESTful, o que o torna fácil de usar e entender.
- Cache: As requisições HTTP PUT podem ser armazenadas em cache por intermediários, como proxies, o que pode ajudar a reduzir o tráfego de rede e melhorar o desempenho.
Vantagens do HTTP PATCH
O método PATCH em HTTP é usado para atualizar parcialmente um recurso no servidor. Ele permite que você envie apenas os dados que precisam ser atualizados, em vez de enviar o recurso inteiro. Isso pode ser vantajoso em situações onde você deseja fazer pequenas mudanças específicas em um recurso sem ter que reenviar o recurso completo.
As vantagens de usar o método HTTP PATCH incluem:
- Eficiência: O PATCH permite um uso mais eficiente dos recursos de rede, enviando apenas as mudanças que precisam ser feitas, reduzindo a quantidade de dados transmitidos.
- Atualizações Parciais: O PATCH permite que você atualize partes específicas de um recurso sem afetar o restante do recurso, proporcionando controle granular sobre as atualizações.
- Idempotente: Quando usado corretamente, as requisições PATCH são idempotentes, o que significa que múltiplas requisições idênticas produzirão o mesmo resultado que uma única requisição, reduzindo o risco de efeitos colaterais não intencionais.
Essas vantagens tornam o HTTP PATCH particularmente útil para casos de uso específicos onde apenas um subconjunto dos dados do recurso precisa ser atualizado.
Como usar Apidog para enviar requisições com HTTP PUT e HTTP PATCH
Apidog é uma plataforma de colaboração integrada projetada para agilizar o processo de trabalho com APIs. Ela combina recursos de ferramentas como Postman, Swagger, Mock e JMeter para fornecer uma solução abrangente para documentação de APIs, depuração, simulação e testes automatizados.
Apidog permite que você envie requisições HTTP para testar e depurar suas APIs sem precisar redefini-las se já estiverem documentadas. Usar o Apidog para enviar requisições PUT e PATCH envolve algumas etapas.
Enviar Requisição HTTP PUT com Apidog
Para enviar uma requisição HTTP PUT com Apidog, você pode seguir estas etapas:
- Abra o Apidog: Comece abrindo o Apidog e criando uma nova requisição.

2. Especifique o Método HTTP: Escolha PUT como o método HTTP para sua requisição.

3. Digite a URL: Insira a URL do recurso que você deseja atualizar, inclua quaisquer cabeçalhos necessários, como Content-Type
ou Authorization
e adicione os dados que você deseja enviar no corpo da requisição. Você pode usar o parâmetro json
para enviar dados JSON ou o parâmetro data
para enviar dados codificados em formulário.

4. Enviar a Requisição: Depois de configurar sua requisição, envie-a para o servidor.

Verifique a resposta do servidor à sua requisição PUT e trate-a de acordo.
Usando Apidog, você pode manter a consistência dos dados entre diferentes sistemas e garantir que seu desenvolvimento de API esteja em estrita conformidade com a documentação da API, levando a uma colaboração mais eficaz e a menos inconsistências.
Enviar Requisição HTTP PATCH com Apidog
- Abra o Apidog: Inicie o aplicativo Apidog e comece criando uma nova requisição dentro do aplicativo.

2. Selecione o Método HTTP: Escolha PATCH
na lista de métodos HTTP.

3. Digite a URL: Insira a URL do endpoint onde você deseja enviar a requisição PATCH, adicione cabeçalhos, se necessário, e no corpo da requisição, inclua os dados que você deseja atualizar parcialmente.
Execute a requisição e aguarde a resposta do servidor.

Analise a resposta do servidor para garantir que a requisição PATCH foi bem-sucedida.
Melhores Práticas para Uso de Requisições HTTP PUT e PATCH
Ao trabalhar com métodos HTTP como PUT e PATCH, é importante seguir melhores práticas para garantir que sua API seja confiável, eficiente e fácil de usar. Aqui estão algumas melhores práticas para usar requisições PUT e PATCH:
Melhores Práticas para Uso de Requisições HTTP PUT
- Use PUT para Atualizações Completo: O PUT deve ser usado quando você deseja atualizar um recurso completamente. Ele substitui o recurso inteiro com a carga útil fornecida no corpo da requisição.
- Garanta Idempotência: As requisições PUT devem ser idempotentes, significando que fazer múltiplas requisições idênticas deve ter o mesmo efeito que fazer uma única requisição.
- Inclua o Recurso na URL: A URL deve conter o identificador do recurso a ser atualizado.
Melhor Práticas para Uso de Requisições HTTP PATCH
- Use PATCH para Atualizações Parciais: O PATCH deve ser usado para atualizações parciais, ou seja, quando você só precisa atualizar campos específicos de um recurso.
- Trate Apropriadamente a Não Idempotência: As requisições PATCH não são obrigadas a serem idempotentes. Se sua implementação for idempotente, ela deve se comportar de acordo.
- Use um Formato Delta: Envie apenas as mudanças (o delta) que você deseja aplicar ao recurso, em vez de enviar o recurso completo.
Melhores Práticas Gerais para Uso de HTTP PUT e HTTP PATCH
- Valide a Entrada: Sempre valide os dados de entrada para requisições PUT e PATCH para evitar atualizações de dados inválidos.
- Use ETags para Controle de Concorrência: Implemente ETags para lidar com atualizações concorrentes e evitar o problema de "atualização perdida".
- Retorne Códigos de Status Apropriados: Use códigos de status HTTP corretamente para indicar o resultado da requisição (por exemplo, 200 OK, 204 Sem Conteúdo, 400 Requisição Inválida).
- Documente Sua API: Documente claramente o comportamento esperado de seus endpoints PUT e PATCH, incluindo campos obrigatórios e regras de validação.
Conclusão
Em conclusão, HTTP PUT e PATCH são ambas requisições HTTP importantes que são usadas para atualizar recursos em um servidor. O PUT é melhor usado quando você deseja substituir completamente um recurso existente por novos dados, enquanto o PATCH é melhor usado quando você deseja atualizar um único campo ou poucos campos em um recurso existente. Ambas as requisições têm suas vantagens e desvantagens, e a escolha entre elas depende do caso de uso específico.
Usando Apidog, você tem a capacidade de enviar suas requisições HTTP sem esforço para testar e depurar suas APIs.