O que é: JavaScript Fetch API

Tempo de Leitura: 3 min

O que é JavaScript Fetch API

A JavaScript Fetch API é uma interface moderna que permite realizar requisições de rede assíncronas no navegador. Ela fornece uma maneira fácil e eficiente de buscar recursos de um servidor web e manipular a resposta obtida. A Fetch API é baseada em Promises, o que significa que ela oferece um modelo de programação assíncrona mais limpo e legível.

Como usar a JavaScript Fetch API

Para utilizar a JavaScript Fetch API, você precisa primeiro criar uma instância do objeto fetch. Esse objeto representa uma requisição HTTP e possui diversos métodos e propriedades para configurar a requisição e obter a resposta. Veja um exemplo básico de como utilizar a Fetch API:

fetch('https://api.exemplo.com/dados')
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));

No exemplo acima, estamos fazendo uma requisição GET para a URL ‘https://api.exemplo.com/dados’. Em seguida, utilizamos os métodos then e catch para tratar a resposta da requisição. O método then recebe uma função que será executada quando a resposta for recebida com sucesso, e o método catch recebe uma função que será executada caso ocorra algum erro durante a requisição.

Configurando a requisição

A Fetch API permite configurar diversos aspectos da requisição, como o método HTTP, os headers, o corpo da requisição e os cookies. Para isso, você pode passar um objeto de configuração como segundo parâmetro para o método fetch. Veja um exemplo:

fetch('https://api.exemplo.com/dados', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({ nome: 'João', idade: 25 })
});

No exemplo acima, estamos fazendo uma requisição POST para a URL ‘https://api.exemplo.com/dados’. Além disso, estamos configurando o header ‘Content-Type’ para ‘application/json’ e enviando um objeto JSON como corpo da requisição.

Manipulando a resposta

Após receber a resposta da requisição, você pode manipulá-la de diversas maneiras. A Fetch API fornece métodos para obter a resposta como texto, JSON, Blob, ArrayBuffer e FormData. Veja alguns exemplos:

fetch('https://api.exemplo.com/dados')
.then(response => response.text())
.then(data => console.log(data));

No exemplo acima, estamos obtendo a resposta como texto. Se preferir obter a resposta como JSON, basta substituir o método text() por json().

Tratando erros

É importante tratar possíveis erros que possam ocorrer durante a requisição. Para isso, você pode utilizar o método catch após o último then da cadeia de Promises. Veja um exemplo:

fetch('https://api.exemplo.com/dados')
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));

No exemplo acima, estamos tratando erros que possam ocorrer durante a requisição. Caso ocorra algum erro, a função passada para o método catch será executada e o erro será exibido no console.

Autenticação e cookies

A Fetch API permite enviar cookies junto com a requisição, o que é útil para autenticação em APIs que utilizam tokens de acesso. Para enviar cookies, basta configurar a propriedade credentials do objeto de configuração. Veja um exemplo:

fetch('https://api.exemplo.com/dados', {
credentials: 'include'
});

No exemplo acima, estamos configurando a propriedade credentials para ‘include’, o que indica que os cookies devem ser enviados junto com a requisição.

Limitações da Fetch API

Apesar de ser uma API poderosa e flexível, a Fetch API possui algumas limitações. Por exemplo, ela não suporta requisições síncronas, o que significa que todas as requisições são feitas de forma assíncrona. Além disso, a Fetch API não suporta o cancelamento de requisições, o que pode ser um problema em certos cenários.

Compatibilidade da Fetch API

A Fetch API é suportada por todos os principais navegadores modernos, incluindo Chrome, Firefox, Safari e Edge. No entanto, é importante verificar a compatibilidade com versões mais antigas dos navegadores, pois algumas funcionalidades podem não estar disponíveis.

Conclusão

A JavaScript Fetch API é uma poderosa ferramenta para realizar requisições de rede assíncronas no navegador. Ela oferece uma maneira simples e eficiente de buscar recursos de um servidor web e manipular a resposta obtida. Com a Fetch API, é possível configurar a requisição de acordo com suas necessidades, manipular a resposta de diversas maneiras e tratar possíveis erros. Apesar de algumas limitações, a Fetch API é amplamente suportada pelos navegadores modernos e é uma ótima opção para desenvolvedores que desejam trabalhar com requisições assíncronas em JavaScript.