Tratamento de erros¶
A API GOB tem um comportamento de erro previsível e enxuto: o resultado é comunicado por meio do status HTTP e de um cabeçalho explicativo — não por um corpo JSON de erro.
Sem JSON no corpo em caso de erro
Não será retornado JSON no corpo em caso de erro. Será retornado o status code HTTP apropriado (200, 400, 401, 403, 404, 500), e um cabeçalho adicional X-Status-Reason explicará o motivo.
Códigos de status¶
| Código | Resposta | Significado |
|---|---|---|
| 200 | OK | Sucesso. |
| 400 | Bad Request | Parâmetro inválido ou requisição malformada. |
| 401 | Unauthorized | Chave de API ausente ou inválida. |
| 403 | Forbidden | Permissão negada. |
| 404 | Not Found | Recurso não encontrado. |
| 500 | Internal Server Error | Erro interno no servidor. |
O cabeçalho X-Status-Reason¶
Sempre que ocorrer um erro, a resposta inclui o cabeçalho X-Status-Reason com o motivo. Inspecione-o para diagnosticar a falha:
const res = await fetch(url, { headers: { "X-Api-Key": key } });
if (!res.ok) {
const motivo = res.headers.get("X-Status-Reason");
throw new Error(`Falha ${res.status}: ${motivo}`);
}
Checklist de diagnóstico¶
- O cabeçalho
X-Api-Keyestá presente e correto? → evita401. - O nome da entidade existe? Veja Entidades. → evita
404. - O
searchParamsé um JSON válido e codificado comencodeURIComponent? → evita400. - O nome da relação está em camelCase? → evita
400/404. - A sua chave tem permissão para o recurso? → evita
403.