# Tratamento de erros
## Formato unificado de resposta a erros
Todos os erros API retornam um formato JSON unificado:
```json
{
"code": 2010,
"message": "Insufficient credits",
"suggestion": "Please top up your account at https://platform.tripo3d.ai",
"request_id": "req_abc123"
}
```
| Campo | Tipo | Descrição |
| :-: | :-: | :-: |
| code | inteiro | Código de erro |
| message | cadeia | Descrição do erro |
| suggestion | cadeia | Correção sugerida |
| request_id | cadeia | Identificador de solicitação exclusivo para solução de problemas |
## Códigos de status HTTP
| Código de status | Significado | Descrição |
| :-: | :-: | :-: |
| 200 | Sucesso | A solicitação foi processada com sucesso |
| 400 | Parâmetros inválidos | Os parâmetros obrigatórios estão ausentes ou mal formados |
| 401 | Não autenticado | O API Key está ausente ou é inválido |
| 403 | Permissões insuficientes | Você não tem permissão para acessar o recurso ou seus créditos são insuficientes |
| 404 | Recurso não encontrado | A tarefa ou recurso solicitado não existe |
| 429 | Muitos pedidos | Limite de taxa excedido. Reduza a frequência de suas solicitações |
| 500 | Erro de serviço | Erro interno do servidor. Tente novamente mais tarde |
## Referência de código de erro
| Código de erro | Significado | Manuseio recomendado |
| :-: | :-: | :-: |
| 1000 | API Key inválido | Verifique se o API Key está correto ou foi excluído |
| 1001 | Não autorizado | Verifique se o cabeçalho da solicitação inclui `Authorization` |
| 2000 | Limite de taxa excedido | Reduza a frequência de solicitações e implemente novas tentativas com espera exponencial |
| 2002 | Parâmetro de solicitação não compatível | Verifique se os nomes e valores dos campos do corpo da solicitação correspondem à documentação |
| 2003 | Arquivo de entrada vazio | Confirme se o arquivo enviado não está vazio e usa um formato válido |
| 2004 | Tipo de arquivo não suportado | Verifique se o formato do arquivo está na lista suportada |
| 2008 | Violação da política de conteúdo | Modifique o conteúdo de entrada para evitar palavras ou imagens proibidas |
| 2010 | Créditos insuficientes | Recarregue créditos no console |
| 2015 | Versão obsoleta | Atualize para a versão mais recente do API |
| 2018 | Modelo muito complexo | Reduza a complexidade ou a contagem múltipla do modelo de entrada |
## Exemplos de tratamento de erros
### Python
```python
import time
import requests
def call_api_with_retry(url, headers, payload=None, max_retries=3):
for attempt in range(max_retries):
if payload:
response = requests.post(url, headers=headers, json=payload)
else:
response = requests.get(url, headers=headers)
if response.status_code == 200:
return response.json()
if response.status_code == 429:
wait = 2 ** attempt
print(f"Rate limit triggered. Retrying in {wait} seconds...")
time.sleep(wait)
continue
error = response.json()
raise Exception(
f"API error [{error['code']}]: {error['message']} "
f"(suggestion: {error.get('suggestion', 'none')})"
)
raise Exception("Maximum retry attempts exhausted")
```
### JavaScript
```javascript
async function callApiWithRetry(url, options, maxRetries = 3) {
for (let attempt = 0; attempt < maxRetries; attempt++) {
const response = await fetch(url, options);
if (response.ok) {
return await response.json();
}
if (response.status === 429) {
const wait = 2 ** attempt * 1000;
console.log(`Rate limit triggered. Retrying in ${wait / 1000} seconds...`);
await new Promise(resolve => setTimeout(resolve, wait));
continue;
}
const error = await response.json();
throw new Error(
`API error [${error.code}]: ${error.message} (suggestion: ${error.suggestion || "none"})`
);
}
throw new Error("Maximum retry attempts exhausted");
}
```
## Recomendações de estratégia para tentar novamente
Para erros repetíveis, como limites de taxa 429 e 500 erros de serviço, use uma estratégia de espera exponencial:
1. Primeira tentativa: espere 1 segundo
2. Segunda tentativa: aguarde 2 segundos
3. Terceira tentativa: aguarde 4 segundos
4. Mantenha a contagem máxima de novas tentativas em 5 ou menos
Para erros que não podem ser repetidos, como 400, 401 e 403, lance uma exceção diretamente e corrija o problema subjacente.
Tratamento de erros
Formato unificado de resposta a erros
Todos os erros API retornam um formato JSON unificado:
JSON
{
"code":2010,
"message":"Insufficient credits",
"suggestion":"Please top up your account at https://platform.tripo3d.ai",
"request_id":"req_abc123"}
Campo
Tipo
Descrição
code
inteiro
Código de erro
message
cadeia
Descrição do erro
suggestion
cadeia
Correção sugerida
request_id
cadeia
Identificador de solicitação exclusivo para solução de problemas
Códigos de status HTTP
Código de status
Significado
Descrição
200
Sucesso
A solicitação foi processada com sucesso
400
Parâmetros inválidos
Os parâmetros obrigatórios estão ausentes ou mal formados
401
Não autenticado
O API Key está ausente ou é inválido
403
Permissões insuficientes
Você não tem permissão para acessar o recurso ou seus créditos são insuficientes
404
Recurso não encontrado
A tarefa ou recurso solicitado não existe
429
Muitos pedidos
Limite de taxa excedido. Reduza a frequência de suas solicitações
500
Erro de serviço
Erro interno do servidor. Tente novamente mais tarde
Referência de código de erro
Código de erro
Significado
Manuseio recomendado
1000
API Key inválido
Verifique se o API Key está correto ou foi excluído
1001
Não autorizado
Verifique se o cabeçalho da solicitação inclui Authorization
2000
Limite de taxa excedido
Reduza a frequência de solicitações e implemente novas tentativas com espera exponencial
2002
Parâmetro de solicitação não compatível
Verifique se os nomes e valores dos campos do corpo da solicitação correspondem à documentação
2003
Arquivo de entrada vazio
Confirme se o arquivo enviado não está vazio e usa um formato válido
2004
Tipo de arquivo não suportado
Verifique se o formato do arquivo está na lista suportada
2008
Violação da política de conteúdo
Modifique o conteúdo de entrada para evitar palavras ou imagens proibidas
2010
Créditos insuficientes
Recarregue créditos no console
2015
Versão obsoleta
Atualize para a versão mais recente do API
2018
Modelo muito complexo
Reduza a complexidade ou a contagem múltipla do modelo de entrada