Sobes.tech
Junior

O que aceita o método fetch?

sobes.tech IA

Resposta da IA

O método fetch aceita um argumento obrigatório — o caminho para a solicitação (RequestInfo ou URL) — e um argumento opcional — um objeto de configurações (RequestInit).

Argumento obrigatório (input) :

  • String: URL do recurso.
  • Objeto Request: Instância da classe Request, que fornece uma configuração mais flexível para a solicitação (cabeçalhos, método, etc.).

Argumento opcional (init) : Um objeto com campos que descrevem a configuração da solicitação. Alguns campos frequentemente usados:

  • method: Método HTTP da solicitação (GET, POST, PUT, DELETE, OPTIONS, etc.).
  • headers: Cabeçalhos da solicitação. Pode ser um objeto chave-valor ou uma instância da classe Headers.
  • body: Corpo da solicitação (para métodos diferentes de GET ou HEAD). Pode ser uma string, ArrayBuffer, TypedArray, DataView, Blob, FormData, URLSearchParams ou ReadableStream.
  • mode: Modo da solicitação (cors, no-cors, same-origin, navigate).
  • credentials: Configuração para enviar credenciais (omit, same-origin, include).
  • cache: Configuração de cache (default, no-store, reload, no-cache, force-cache, only-if-cached).
  • redirect: Como lidar com redirecionamentos (follow, error, manual).
  • referrer: Valor para o cabeçalho Referer.
  • referrerPolicy: Política para enviar o cabeçalho Referer.
  • integrity: Valor para o cabeçalho Integrity. Usado para a integridade de recursos subjacentes.
  • keepalive: Valor booleano indicando que a solicitação deve permanecer ativa após a página ser fechada (para enviar análises ou relatórios).
  • signal: Instância de AbortSignal para cancelar a solicitação.
  • window: Objeto Window associado à solicitação (por padrão, a janela atual).

Exemplo de uso:

// Solicitação GET
fetch('/api/users')
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Erro:', error));

// Solicitação POST com corpo e cabeçalhos
fetch('/api/products', {
  method: 'POST', // Método HTTP
  headers: {
    'Content-Type': 'application/json', // Tipo de dados enviados
    'Authorization': 'Bearer your_token' // Exemplo de cabeçalho de autorização
  },
  body: JSON.stringify({ name: 'Novo produto', price: 100 }) // Corpo da solicitação
})
  .then(response => {
    if (!response.ok) {
      throw new Error(`Erro HTTP! status: ${response.status}`);
    }
    return response.json();
  })
  .then(data => console.log('Sucesso:', data))
  .catch(error => console.error('Erro:', error));