Pular para o conteúdo principal

Estrutura Padrão

Todas as respostas da API seguem uma estrutura consistente para facilitar o tratamento.

Resposta de Sucesso

{
  "id": "uuid",
  "tenant_id": "uuid",
  "name": "João Silva",
  "email": "[email protected]",
  "created_at": "2024-01-01T00:00:00Z",
  "updated_at": "2024-01-01T00:00:00Z"
}

Resposta de Erro

{
  "success": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Invalid request data",
    "details": {
      "field": "email",
      "reason": "Invalid email format"
    }
  }
}

Códigos de Status HTTP

200 OK
Requisição bem-sucedida. Retorna os dados solicitados.
201 Created
Recurso criado com sucesso. Retorna o objeto criado.
204 No Content
Operação bem-sucedida sem conteúdo de retorno (ex: DELETE).
400 Bad Request
Dados inválidos na requisição. Verifique os parâmetros.
401 Unauthorized
Chave de API inválida ou ausente.
403 Forbidden
Sem permissão para acessar este recurso.
404 Not Found
Recurso não encontrado.
429 Too Many Requests
Rate limit excedido. Aguarde antes de fazer novas requisições.
500 Internal Server Error
Erro interno do servidor. Tente novamente mais tarde.

Tabela de Códigos

CódigoStatusDescrição
200OKSucesso
201CreatedCriado com sucesso
204No ContentSucesso sem retorno
400Bad RequestDados inválidos
401UnauthorizedNão autenticado
403ForbiddenSem permissão
404Not FoundNão encontrado
429Too Many RequestsRate limit
500Server ErrorErro interno

Tratamento em Código

async function makeRequest(url, options) {
  const response = await fetch(url, options);

  if (!response.ok) {
    const error = await response.json();

    switch (response.status) {
      case 401:
        throw new Error('API key inválida');
      case 404:
        throw new Error('Recurso não encontrado');
      case 429:
        // Implementar retry com backoff
        await sleep(1000);
        return makeRequest(url, options);
      default:
        throw new Error(error.error?.message || 'Erro desconhecido');
    }
  }

  return response.json();
}