🔄 Método PUT

O método PUT é utilizado para atualizar completamente um recurso existente no servidor, substituindo todos os seus dados pelos fornecidos na requisição. Ele é idempotente, ou seja, enviar a mesma requisição várias vezes terá sempre o mesmo efeito. O PUT exige que o cliente envie o recurso completo, mesmo que apenas parte dele tenha sido modificada. É comumente usado em situações onde se deseja garantir que o recurso no servidor fique exatamente como o enviado pelo cliente, sem depender do estado anterior.

📥 Exemplo com PUT — Atualizar um recurso existente

fetch('https://api.exemplo.com/usuarios/123', {
  method: 'PUT',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    nome: 'João Silva',
    email: 'joao.silva@example.com'
  })
})
  .then(response => response.json())
  .then(data => console.log('Usuário atualizado:', data))
  .catch(error => console.error('Erro no PUT:', error));
☝️🤓 Explicação do exemplo PUT

fetch('https://api.exemplo.com/usuarios/123', { → Faz uma requisição para o endpoint do usuário com ID 123 e passa as opções da requisição. method: 'PUT', → Define que o método será PUT (atualizar dados). headers: { 'Content-Type': 'application/json' }, → Define o cabeçalho da requisição, informando que o corpo será em JSON. body: JSON.stringify({ nome: 'João Silva', email: 'joao.silva@example.com' }) → Converte o objeto JavaScript com os novos dados em string JSON e envia como corpo da requisição. .then(response => response.json()) → Quando a resposta chegar, transforma o corpo da resposta em JSON. .then(data => console.log('Usuário atualizado:', data)) → Mostra no console os dados retornados pela API (ex: usuário atualizado). .catch(error => console.error('Erro no PUT:', error)); → Captura qualquer erro ocorrido e exibe no console.

🔎 Exemplo prático

fetch('https://jsonplaceholder.typicode.com/users/1', {
  method: 'PUT',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    name: 'João Silva',
    email: 'joao.silva@example.com'
  })
})
  .then(response => response.json())
  .then(data => console.log('Usuário atualizado:', data))
  .catch(error => console.error('Erro no PUT:', 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 e passa as opções da requisição.

2

method: 'PUT'

  • Define que o método será PUT, para atualizar dados do usuário.

3

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

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

4

body: JSON.stringify({ name: 'João Silva', email: 'joao.silva@example.com' })

  • Converte o objeto com os novos dados do usuário 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:', data))

  • Mostra no console a mensagem "Usuário atualizado:" seguida dos dados retornados.

7

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

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

🐸 Exemplo com async/await

async function updateUser() {
  try {
    const response = await fetch('https://jsonplaceholder.typicode.com/users/1', {
      method: 'PUT',
      headers: {
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({
        name: 'João Silva',
        email: 'joao.silva@example.com'
      })
    });

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

updateUser();

A função updateUser é 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. Se algo der errado, o erro é capturado pelo try...catch. Tudo organizado em bloco, sem encadeamento de .then().

Last updated