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"
}