🩹 Método PATCH

O método PATCH é utilizado para atualizar parcialmente um recurso existente no servidor, modificando apenas os campos especificados na requisição. Assim como o PUT, o PATCH também é idempotente, pois múltiplas requisições com os mesmos dados produzem o mesmo resultado. Ele é ideal quando se deseja alterar apenas uma parte do recurso — como atualizar apenas o email de um usuário — sem a necessidade de reenviar todos os dados. Isso torna o PATCH mais leve e eficiente para atualizações pontuais.

📥 Exemplo com PATCH — Atualizar parcialmente um recurso existente

fetch('https://api.exemplo.com/usuarios/123', {
  method: 'PATCH',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    email: 'novo.email@example.com'
  })
})
  .then(response => response.json())
  .then(data => console.log('Usuário atualizado parcialmente:', data))
  .catch(error => console.error('Erro no PATCH:', error));
🤓 Explicação do código

fetch('https://api.exemplo.com/usuarios/123', { → Faz uma requisição para o endpoint do usuário com ID 123 e passa as configurações necessárias. method: 'PATCH', → Define que o método será PATCH, usado para atualizar apenas parte dos dados do recurso. headers: { 'Content-Type': 'application/json' }, → Define o cabeçalho da requisição, indicando que os dados enviados estão no formato JSON. body: JSON.stringify({ email: 'novo.email@example.com' }) → Converte o objeto JavaScript com o novo e-mail em uma string JSON e envia como corpo da requisição. .then(response => response.json()) → Quando a resposta da API chegar, transforma o corpo da resposta em um objeto JSON. .then(data => console.log('Usuário atualizado parcialmente:', data)) → Exibe no console os dados retornados pela API após a atualização parcial. .catch(error => console.error('Erro no PATCH:', error)); → Caso ocorra algum erro durante a requisição, ele é capturado e exibido no console com uma mensagem.

🔎 Exemplo prático

fetch('https://jsonplaceholder.typicode.com/users/1', {
  method: 'PATCH',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    email: 'novo.email@example.com'
  })
})
  .then(response => response.json())
  .then(data => console.log('Usuário atualizado parcialmente:', data))
  .catch(error => console.error('Erro no PATCH:', error));

👣 Explicação passo a passo

1

fetch('https://jsonplaceholder.typicode.com/users/1', { ... })

Faz uma requisição para o endpoint do usuário com ID 1, passando as opções da requisição.

2

method: 'PATCH'

Define que o método será PATCH, usado para atualizar parcialmente dados do usuário (não é necessário enviar todos os campos, só os que quer alterar).

3

headers: { 'Content-Type': 'application/json' }

Define que o corpo da requisição será enviado no formato JSON.

4

body: JSON.stringify({ email: 'novo.email@example.com' })

Converte o objeto com os dados que serão atualizados parcialmente para JSON e envia como corpo da requisição.

5

.then(response => response.json())

Quando a resposta chegar, transforma o corpo da resposta em JSON.

6

.then(data => console.log('Usuário atualizado parcialmente:', data))

Mostra no console a mensagem seguida dos dados retornados da atualização.

7

.catch(error => console.error('Erro no PATCH:', error));

Se ocorrer algum erro na requisição, captura e exibe no console com a mensagem "Erro no PATCH:".

🐸 Exemplo com async/await

async function updateUserPartial() {
  try {
    const response = await fetch('https://jsonplaceholder.typicode.com/users/1', {
      method: 'PATCH',
      headers: {
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({
        email: 'novo.email@example.com'
      })
    });

    const data = await response.json();
    console.log('Usuário atualizado parcialmente:', data);
  } catch (error) {
    console.error('Erro no PATCH:', error);
  }
}

updateUserPartial();

A função updateUserPartial é assíncrona. Ela faz a requisição com fetch usando await para esperar a resposta, depois transforma a resposta em JSON e exibe no console os dados atualizados parcialmente. Se algo der errado, o erro é capturado pelo try...catch. Tudo organizado e limpo, sem encadeamento de .then().

Last updated