Fazendo requisições HTTP com Fetch API: buscando dados da internet
Aprenda a usar a Fetch API para se comunicar com servidores e obter informações (APIs).
Até aqui, você aprendeu como funciona assincronicidade com callbacks, promises e async/await.
Agora vamos usar isso em um cenário real: buscar dados de uma API com a Fetch API.
Pense assim: sua página “faz uma pergunta” para um servidor e recebe uma resposta.
O que é fetch?
fetch é uma função nativa do JavaScript que faz requisições HTTP (como GET, POST, etc.).
Ela retorna uma Promise, então você pode usar:
.then()/.catch()- ou
async/await
Exemplo básico com .then()
fetch("https://jsonplaceholder.typicode.com/users")
.then(function (resposta) {
return resposta.json();
})
.then(function (dados) {
console.log(dados);
})
.catch(function (erro) {
console.log("Erro na requisição:", erro);
});
O que acontece aqui?
fetch(...)faz a requisição.resposta.json()converte o corpo da resposta para objeto JavaScript.dadosrecebe o resultado convertido.catchtrata falhas de rede ou problemas na cadeia.
O mesmo exemplo com async/await
async function buscarUsuarios() {
try {
const resposta = await fetch("https://jsonplaceholder.typicode.com/users");
const dados = await resposta.json();
console.log(dados);
} catch (erro) {
console.log("Erro na requisição:", erro);
}
}
buscarUsuarios();
Essa forma costuma ser mais legível.
Entendendo response
O fetch retorna um objeto de resposta com dados úteis, como:
response.status(código HTTP: 200, 404, 500...)response.ok(truese status estiver entre 200 e 299)response.json()(converte resposta JSON)
Exemplo:
const resposta = await fetch(url);
console.log(resposta.status);
console.log(resposta.ok);
Requisição GET (buscar dados)
GET é o tipo padrão no fetch.
fetch("https://jsonplaceholder.typicode.com/posts");
Use quando quiser ler informações.
Requisição POST (enviar dados)
Para enviar dados, você define method, headers e body.
fetch("https://jsonplaceholder.typicode.com/posts", {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
titulo: "Meu post",
conteudo: "Aprendendo Fetch API"
})
})
.then(function (res) {
return res.json();
})
.then(function (dados) {
console.log("Criado:", dados);
});
Boas práticas iniciais com Fetch
- Sempre trate erro (
catchoutry...catch). - Verifique
response.okpara confirmar sucesso HTTP. - Separe a função de busca da função que renderiza na tela.
- Mostre feedback ao usuário (carregando, sucesso, erro).
Exemplo completo com verificação de status
async function buscarPosts() {
try {
const resposta = await fetch("https://jsonplaceholder.typicode.com/posts");
if (!resposta.ok) {
throw new Error("Falha HTTP: " + resposta.status);
}
const posts = await resposta.json();
console.log("Total de posts:", posts.length);
} catch (erro) {
console.log("Erro ao buscar posts:", erro.message);
}
}
buscarPosts();
Resumo da lição
fetché a forma nativa de fazer requisições HTTP no JavaScript moderno.- Ele retorna Promise e funciona bem com
then/catchouasync/await. response.json()converte a resposta para objeto JavaScript.- Verificar
response.oke tratar erros é essencial para aplicações reais.