Nesta página
  1. O pedido
  2. O número
  3. O corpo

O que uma API devolve

1 minapihttp

Uma API é um balcão. O seu programa não abre o banco nem a cozinha do outro sistema. Ele faz um pedido HTTP e lê a resposta. A resposta tem duas partes: o status, que é um número, e o corpo, que costuma ser JSON.

O pedido

GET pede para ler. POST pede para criar. PATCH altera um pedaço. DELETE remove. A URL diz o recurso, por exemplo /posts/como-ler-uma-mensagem-de-erro. Cabeçalho leva o formato que você aceita e, quando a rota é fechada, a credencial.

ler-posts.js · javascript
const resposta = await fetch("https://exemplo.com/posts");

if (!resposta.ok) {
  throw new Error(`A API respondeu ${resposta.status}`);
}

const posts = await resposta.json();

resposta.ok só é verdadeiro do 200 ao 299. Sem esse if, um 404 também segue para resposta.json() e você trata uma página de erro como se fosse a lista.

O número

Os status que aparecem toda semana.
StatusSignifica
200Veio o que você pediu para ler
201O recurso foi criado
400O pedido chegou mal formado
401Faltou credencial, ou ela não vale
403A credencial vale, mas essa ação é proibida
404Não existe recurso nesse endereço
500O servidor quebrou do lado de lá

O corpo

O JSON é o dado. Numa lista de posts, espere um array. Num erro bem feito, espere um objeto com uma frase que um humano lê. Não invente campo: leia a resposta de verdade no painel Network do navegador, na linha da requisição, em Response.

Se o status é 500, o conserto não está no seu fetch. Está no servidor que recebeu o pedido. O corpo, quando existe, costuma dizer qual parte quebrou.