def handle_api_error(response: requests.Response) -> None:
"""
Trata erros específicos da API
"""
if response.status_code == 200:
return
try:
error_data = response.json().get('error', {})
error_code = error_data.get('code', 'UNKNOWN_ERROR')
error_message = error_data.get('message', 'Erro desconhecido')
request_id = error_data.get('request_id', 'N/A')
print(f"Erro {response.status_code}: {error_message}")
print(f"Código: {error_code}")
print(f"Request ID: {request_id}")
# Tratamento específico por código
if error_code == 'USER_NOT_FOUND':
print("⚠️ Verifique sua API Key")
elif error_code == 'VALIDATION_ERROR':
details = error_data.get('details', {})
field = details.get('field', 'desconhecido')
reason = details.get('reason', 'erro de validação')
print(f"❌ Campo '{field}': {reason}")
else:
print(f"❓ Erro não tratado: {error_code}")
except (ValueError, KeyError) as e:
print(f"Erro ao processar resposta de erro: {e}")
print(f"Status: {response.status_code}")
print(f"Resposta: {response.text[:200]}...")
# Uso
response = requests.get(
'https://requests.prod.judit.io/requests',
headers={'api-key': os.getenv('JUDIT_API_KEY')}
)
handle_api_error(response)