Tratamento de Erros
A API do GetRaze usa codigos de resposta HTTP convencionais para indicar sucesso ou falha.
Codigos de Status HTTP
| Codigo | Descricao |
|---|---|
200 | Sucesso |
201 | Criado |
400 | Requisicao Invalida - Parametros invalidos |
401 | Nao Autorizado - Chave de API invalida ou ausente |
403 | Proibido - Permissoes insuficientes |
404 | Nao Encontrado - Recurso nao existe |
429 | Muitas Requisicoes - Limite de requisicao excedido |
500 | Erro Interno do Servidor |
Formato da Resposta de Erro
Todos os erros retornam uma estrutura JSON consistente:
json
{
"success": false,
"error": {
"code": "ERROR_CODE",
"message": "Human-readable error message",
"details": {}
}
}Codigos de Erro
Erros de Autenticacao
| Codigo | Status | Descricao |
|---|---|---|
MISSING_API_KEY | 401 | Nenhuma chave de API foi fornecida |
INVALID_API_KEY | 401 | Chave de API invalida ou revogada |
EXPIRED_API_KEY | 401 | Chave de API expirada |
INSUFFICIENT_PERMISSIONS | 403 | Chave de API sem a permissao necessaria |
Erros de Validacao
| Codigo | Status | Descricao |
|---|---|---|
VALIDATION_ERROR | 400 | Falha na validacao do corpo da requisicao |
INVALID_PARAMETER | 400 | Parametro de query invalido |
MISSING_REQUIRED_FIELD | 400 | Campo obrigatorio ausente |
INVALID_EMAIL | 400 | Formato de e-mail invalido |
Erros de Recurso
| Codigo | Status | Descricao |
|---|---|---|
NOT_FOUND | 404 | Recurso solicitado nao foi encontrado |
ALREADY_EXISTS | 409 | Recurso ja existe |
CONFLICT | 409 | Operacao conflita com o estado atual |
Limite de Requisicao
| Codigo | Status | Descricao |
|---|---|---|
RATE_LIMIT_EXCEEDED | 429 | Muitas requisicoes, tente novamente mais tarde |
Exemplos de Respostas de Erro
Chave de API Ausente
json
{
"success": false,
"error": {
"code": "MISSING_API_KEY",
"message": "API key is required. Include it in the X-API-Key header."
}
}Erro de Validacao
json
{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"details": {
"fields": {
"email": "Invalid email format",
"name": "Name is required"
}
}
}
}Recurso Nao Encontrado
json
{
"success": false,
"error": {
"code": "NOT_FOUND",
"message": "Contact not found"
}
}Tratando Erros
javascript
async function apiCall(endpoint, options) {
const response = await fetch(endpoint, options);
const data = await response.json();
if (!data.success) {
switch (data.error.code) {
case 'RATE_LIMIT_EXCEEDED':
// Wait and retry
await sleep(60000);
return apiCall(endpoint, options);
case 'INVALID_API_KEY':
// Check your API key configuration
throw new Error('Invalid API key');
case 'VALIDATION_ERROR':
// Log validation details
console.error('Validation errors:', data.error.details);
throw new Error(data.error.message);
default:
throw new Error(data.error.message);
}
}
return data;
}