Ir para o conteúdo

API de Bases

A API de Bases é responsável por gerenciar as bases de dados, seus dados externos, e as permissões de acesso dos usuários a essas bases (grupos).

Nota – Autenticação Todos os endpoints descritos abaixo requer autenticação via JWT.
Para acessá-los, é necessário enviar um token de autorização no cabeçalho da requisição:

Authorization: Bearer <seu_token_jwt>

Gerenciamento de Bases

Endpoints focados na criação, leitura, atualização e exclusão (CRUD) das bases de dados e seu conteúdo.

1. Listar todas as bases do usuário

Este método retorna uma lista com todas as bases às quais o usuário autenticado tem acesso.

Endpoint:

GET /getAllBases

Exemplo de Resposta (200 OK):

[
  {
    "key": 1,
    "name_base": "base_vendas_2024",
    "description": "Dados de vendas do ano de 2024"
  },
  {
    "key": 2,
    "name_base": "base_clientes_ativos",
    "description": "Lista de clientes com compras recentes"
  }
]

2. Buscar dados externos de uma base

Recupera os dados armazenados em uma base específica, identificada pelo nome.

Endpoint:

GET /base/:name_base/externaldata

Parâmetros de Rota: | Parâmetro | Tipo | Descrição | | :--- | :--- | :--- | | name_base | string | Nome da base a ser consultada. |

3. Buscar base por chave (ID)

Recupera os detalhes de uma base específica com base em sua chave (key).

Endpoint:

GET /base/key/:key

Parâmetros de Rota: | Parâmetro | Tipo | Descrição | | :--- | :--- | :--- | | key | number | Chave (ID) da base a ser consultada. |

4. Buscar base por nome

Recupera os detalhes de uma base específica com base no seu nome.

Endpoint:

GET /base/:nome_base

Parâmetros de Rota: | Parâmetro | Tipo | Descrição | | :--- | :--- | :--- | | nome_base | string | Nome da base a ser consultada. |

5. Criar uma nova base

Cria uma nova estrutura de base de dados.

Endpoint:

POST /base

Corpo da Requisição (application/json): O corpo deve conter o objeto Base com a estrutura da nova base.

{
  "name_base": "nova_base_marketing",
  "description": "Campanhas de marketing do Q3",
  "fields": [
    { "name": "id_campanha", "type": "INTEGER" },
    { "name": "nome_campanha", "type": "TEXT" },
    { "name": "orcamento", "type": "REAL" }
  ]
}

6. Atualizar uma base

Atualiza a estrutura ou os metadados de uma base existente.

Endpoint:

PUT /base

Corpo da Requisição (application/json): O corpo deve conter o objeto Base com os dados a serem atualizados, incluindo sua key.

{
  "key": 3,
  "name_base": "nova_base_marketing_2025",
  "description": "Campanhas de marketing do ano de 2025"
}

7. Atualizar dados externos de uma base

Atualiza (insere ou modifica) os registros de dados dentro de uma base específica.

Endpoint:

PUT /base/:nome_base/externaldata

Parâmetros de Rota: | Parâmetro | Tipo | Descrição | | :--- | :--- | :--- | | nome_base | string | Nome da base a ser atualizada. |

Corpo da Requisição (application/json): Um array de objetos contendo os dados a serem inseridos/atualizados.

[
    { "id_campanha": 1, "nome_campanha": "Natal Feliz", "orcamento": 5000.00 },
    { "id_campanha": 2, "nome_campanha": "Black Friday", "orcamento": 15000.00 }
]

8. Deletar uma base

Remove permanentemente uma base e todos os seus dados.

Endpoint:

DELETE /base/:key

Parâmetros de Rota: | Parâmetro | Tipo | Descrição | | :--- | :--- | :--- | | key | number | Chave (ID) da base a ser deletada. |


Gerenciamento de Grupos e Permissões

Endpoints para gerenciar o acesso dos usuários às bases. Neste contexto, um "Grupo" representa a associação de um usuário a uma base.

9. Listar usuários de uma base (grupo)

Retorna uma lista de usuários associados a uma base específica.

Endpoint:

GET /group/getGroupByUser/:idbase

Parâmetros de Rota: | Parâmetro | Tipo | Descrição | | :--- | :--- | :--- | | idbase | number | ID da base para consultar os usuários. |

10. Listar bases de um usuário (grupos)

Retorna uma lista de bases (grupos) às quais um usuário específico tem permissão.

Endpoint:

GET /group/getGroupByUserId/:id

Parâmetros de Rota: | Parâmetro | Tipo | Descrição | | :--- | :--- | :--- | | id | number | ID do usuário para consultar suas bases. |

11. Adicionar usuário a um grupo (associar à base)

Cria uma nova associação entre um usuário e uma base.

Endpoint:

POST /group/addGroup

Corpo da Requisição (application/json): O objeto GrupoDTO deve conter o ID do usuário e o ID da base.

{
  "id_user": 10,
  "id_base": 3,
  "permissao": "leitura"
}

12. Atualizar permissão de um grupo

Altera as permissões de um usuário em uma base específica.

Endpoint:

PUT /group/updateGroup

Corpo da Requisição (application/json): O objeto GrupoDTO deve conter o ID do grupo (associação) e a nova permissão.

{
  "id_grupo": 15,
  "permissao": "escrita"
}

13. Remover usuário de um grupo (desassociar da base)

Remove a associação entre um usuário e uma base.

Endpoint:

DELETE /group/deleteGroup

Corpo da Requisição (application/json): O corpo deve conter o ID do grupo (associação) a ser removido.

{
  "id_grupo": 15
}

14. Deletar permissões de um usuário

Remove permissões específicas de um usuário.

Endpoint:

DELETE /permissoes/:idUser/

Parâmetros de Rota: | Parâmetro | Tipo | Descrição | | :--- | :--- | :--- | | idUser | number | ID do usuário para remover permissões. |

Corpo da Requisição (application/json): O corpo deve conter a permissão a ser removida.

{
  "permissao": "escrita"
}