Entender as respostas de erro ajuda você a depurar problemas rapidamente. Aqui estão os erros mais comuns que você encontrará.
400 Solicitação inválida
{
"error": "media_id is required"
}
Causas:
Parâmetro obrigatório ausente
Formato de parâmetro inválido
JSON malformado
Correção: Verifique se o corpo da sua solicitação corresponde à especificação da API em api.cathopic.com/docs.
401 Não autorizado
{
"message": "Unauthorized"
}
ou
{
"error": "Unauthorized token"
}
Causas:
Chave de API ausente ou inválida
Chave de API desativada
Nome de cabeçalho incorreto
Correção: Verifique se o seu cabeçalho x-api-key está correto e se a chave está ativa em Configurações → API.
404 Não encontrado
{
"error": "No file found for media_id 1234"
}
ou
{
"error": "Media item not found"
}
Causas:
O recurso não existe
O recurso foi excluído
media_id incorreto
Correção: Verifique se o media_id existe pesquisando primeiro com /resources.
429 Muitas solicitações
{
"error": "Limit exceed."
}
Causas:
Muitas solicitações em pouco tempo
Limite de taxa excedido
Correção: Implemente backoff exponencial. Aguarde e tente novamente com atrasos crescentes (1s, 2s, 4s, etc.).
500 Erro interno do servidor
{
"error": "Internal server error"
}
Causas:
Problema temporário no servidor
Condição inesperada
Correção: Aguarde um momento e tente novamente. Se persistir, entre em contato com suporte.
Exemplo de tratamento de erro
async function searchWithErrorHandling(query) {
try {
const response = await fetch('https://api.cathopic.com/resources', {
method: 'POST',
headers: {
'x-api-key': apiKey,
'Content-Type': 'application/json'
},
body: JSON.stringify({ query, page: 1, page_size: 20 })
});
if (!response.ok) {
const error = await response.json();
switch (response.status) {
case 400:
console.error('Bad request:', error);
break;
case 401:
console.error('Unauthorized. Check your API key.');
break;
case 404:
console.error('Resource not found:', error);
break;
case 429:
console.error('Rate limited. Implementing backoff...');
await sleep(5000);
return searchWithErrorHandling(query); // Retry
case 500:
console.error('Server error. Retrying in 10s...');
await sleep(10000);
return searchWithErrorHandling(query);
default:
console.error('Unknown error:', error);
}
throw new Error(`API error: ${response.status}`);
}
return await response.json();
} catch (error) {
console.error('Request failed:', error);
throw error;
}
}
Para erros persistentes, verifique a documentação completa da API ou entre em contato com o suporte.