API de Registros
A API de Registros é o coração do sistema para manipulação de dados. Ela permite a persistência, consulta, atualização e exclusão de registros dinâmicos dentro das estruturas criadas pela API de Bases. Sua arquitetura é flexível, utilizando parâmetros de rota dinâmicos e payloads de busca avançada.
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>
CRUD Básico de Registros
Operações fundamentais para criar, ler, atualizar e deletar um registro inteiro.
1. Criar um novo registro
Persiste um novo registro JSON em uma base específica.
Endpoint:
POST /:nome_base/reg
Parâmetros de Rota:
| Parâmetro | Tipo | Descrição |
|---|---|---|
nome_base |
string |
Nome da base onde o registro será criado. |
Corpo da Requisição (application/json):
Um objeto JSON representando o registro a ser inserido.
{
"cliente": "Empresa X",
"valor_total": 1500.75,
"itens": [
{"produto_id": 1, "quantidade": 10},
{"produto_id": 5, "quantidade": 2}
]
}
2. Buscar um registro por ID
Retorna um registro completo com base no seu ID.
Endpoint:
GET /:nome_base/reg/:id
Parâmetros de Rota:
| Parâmetro | Tipo | Descrição |
|---|---|---|
nome_base |
string |
Nome da base do registro. |
id |
string |
ID do registro a ser consultado. |
3. Listar todos os registros de uma base
Retorna todos os registros de uma base, incluindo seus arquivos.
Endpoint:
GET /:nome_base/reg
Parâmetros de Rota:
| Parâmetro | Tipo | Descrição |
|---|---|---|
nome_base |
string |
Nome da base a ser consultada. |
4. Atualizar um registro completo
Substitui um registro existente por um novo. O corpo da requisição deve conter o objeto JSON completo com as alterações.
Endpoint:
PUT /:nome_base/reg/:id
Parâmetros de Rota:
| Parâmetro | Tipo | Descrição |
|---|---|---|
nome_base |
string |
Nome da base do registro. |
id |
string |
ID do registro a ser atualizado. |
5. Deletar um registro
Remove permanentemente um registro com base no seu ID.
Endpoint:
DELETE /:nome_base/reg/:id
Parâmetros de Rota:
| Parâmetro | Tipo | Descrição |
|---|---|---|
nome_base |
string |
Nome da base do registro. |
id |
string |
ID do registro a ser deletado. |
Operações Específicas (Patch e Delete Parcial)
Endpoints para modificar ou remover partes específicas de um registro sem a necessidade de enviar o objeto inteiro.
6. Atualizar parte de um registro (Patch)
Atualiza um campo ou sub-objeto específico dentro de um registro. O caminho para o dado é especificado na URL.
Endpoint:
PATCH /:nome_base/reg/:id/*
Exemplo de URL: PATCH /base_vendas/reg/uuid-1234/cliente/endereco
- Neste exemplo,
*corresponde acliente/endereco.
Corpo da Requisição (application/json):
O novo valor para o caminho especificado.
{
"rua": "Nova Rua",
"cidade": "Nova Cidade"
}
7. Deletar parte de um registro
Deleta um campo ou sub-objeto específico dentro de um registro.
Endpoint:
DELETE /:nome_base/reg/:id/*
Exemplo de URL: DELETE /base_vendas/reg/uuid-1234/itens/item-5678
- Neste exemplo,
*corresponde aitens/item-5678, removendo um item específico da lista.
7. Buscar registro completo com extrações
Recupera o objeto complemento de um registro por meio do seu ID, incluíndo os metadados e o texto completo extraído de quaisquer arquivos anexos.
Endpoint:
GET /:nome_base/reg/:id/full
Parâmetros de Rota:
| Parâmetro | Tipo | Descrição |
|---|---|---|
nome_base |
string |
Nome da base do registro. |
id |
string |
ID do registro a ser consultado. |
Exemplo de Resposta (201 Created):
{
"Texto": "teste",
"_metadata": {
"id_reg": "6d8ac373-afd2-4cd7-8bde-8f613d37bc86",
"dt_doc": "30/06/2026 17:36:50",
"dt_last_up": null,
"dt_idx": null
},
"arquivo": [
{
"uuid": "fb088d1a-9bde-447a-9e40-cd9cf98abd94",
"id_file": "2ba40d43-d6dc-4093-b2a2-4ea800994036",
"mimetype": "application/pdf",
"filesize": 25834,
"date_upload": "2026-06-30 17:35:28",
"idioma": "",
"filetext": "Texto extraído pelo converter"
}
]
}
8. Fragmento de registro por caminho dinâmico
Navega dinamicamente por dentro da estrutura JSON de um registro específico através de um caminho informado na URL, retornando apenas o sub-objeto correspondente ao alvo.
Endpoint:
POST /:nome_base/all/reg/:id/*
Parâmetros de Rota:
| Parâmetro | Tipo | Descrição |
|---|---|---|
nome_base |
string |
Nome da base. |
id |
string |
ID do registro alvo. |
* |
string |
Caminho interno do JSON que deseja extrair (ex: configuracao). |
Exemplo de URL: POST /Usuario/all/reg/678e095d-c883-45c1-bb5c-bf1157677340/configuracao
- Retorna estritamente o conteúdo presente no grupo
configuracaodo usuário informado.
Exemplo de Resposta (200 OK):
[
{
"id_orgao_principal": "20260101000000000",
"nm_orgao_principal": "SIGLA | NOME DO ORGAO EXEMPLO",
"ds_pagina_inicial": "./pagina_exemplo.aspx",
"ds_assunto": "ASSUNTO_EXEMPLO",
"id_assunto": "1",
"id_tipo_doc": "879cc94f6c8b4c3b962801a8dd6e6740",
"nm_tipo_doc": "Tipo de Documento Exemplo",
"tp_doc_nr_obrigatorio": false,
"dt_ult_verificacao_pendencia": "01/01/2026 12:00:00",
"destino_padrao": {
"nm_tipo_destino": "Interno",
"id_destino_orgao": "20260101111111111",
"sg_destino_orgao": "SGL",
"nm_destino_orgao": "NOME DO DEPARTAMENTO EXEMPLO"
},
"aplicacao_configuracao": []
}
]
9. Atualizar registros em lote por caminho (Put Path)
Realiza operações em lote (insert, update ou delete) em um caminho específico (path) dentro de múltiplos registros, utilizando uma consulta para definir quais registros serão afetados.
Endpoint
PUT /:nome_base/put-path/reg/*
Parâmetros de Rota:
| Parâmetro | Tipo | Descrição |
|---|---|---|
nome_base |
string |
Nome da base onde os registros serão alterados. |
Corpo da Requisição (application/json):
O corpo deve conter um array de objetos de operação. Cada objeto dita as regras de busca e modificação
| Campo | Descrição |
|---|---|
literal |
Objeto de consulta indicando os registros alvo da alteração (contém select, limit, offset, literal, etc). |
path |
Caminho do atributo que será alterado dentro do registro (ex: grupo_permissao/*). |
fn |
(Não implementado) Reservado para funções de tratamento de dados. |
mode |
Ação a ser executada nos registros encontrados. Opções: "insert", "update" ou "delete". |
args |
Dados da operação. Para insert ou delete, recebe o objeto alvo. Para update, recebe dois objetos: o atual e o novo que o substituirá. |
Exemplos de Requisição por Modo (mode)
Modo Insert:
Insere o objeto definido no args dentro do path especificado para todos os registros que derem match no literal.
[
{
"literal": {
"select": null,
"limit": null,
"offset": 0,
"literal": "nr_cpf= '000.000.000-00'",
"order_by": null
},
"path": "grupo_permissao/*",
"fn": null,
"mode": "insert",
"args": [
{
"ch_grupo_user": "xpto",
"nm_grupo_user": "xpto"
}
]
}
]
Modo Update:
Substitui um objeto existente por um novo. O array args deve conter dois objetos: o primeiro é o alvo da alteração e o segundo é o novo objeto.
[
{
"literal": {
"select": null,
"limit": null,
"offset": 0,
"literal": "nr_cpf= '000.000.000-00'",
"order_by": null
},
"path": "grupo_permissao/*",
"fn": null,
"mode": "update",
"args": [
{
"ch_grupo_user": "xpto",
"nm_grupo_user": "xpto"
},
{
"ch_grupo_user": "xpto atualizado",
"nm_grupo_user": "xpto atualizado"
}
]
}
]
Modo Delete:
Remove o objeto definido no args do path especificado.
[
{
"literal": {
"select": null,
"limit": null,
"offset": 0,
"literal": "nr_cpf= '000.000.000-00'",
"order_by": null
},
"path": "grupo_permissao/*",
"fn": null,
"mode": "delete",
"args": [
{
"ch_grupo_user": "xpto",
"nm_grupo_user": "xpto"
}
]
}
]
Exemplo de Resposta
Exemplo de Resposta - Com Sucesso (200 OK):
{
"operacoes": [
{
"grupo": "grupo_permissao",
"valor": {
"ch_grupo_user": "MD.DOC.REA",
"nm_grupo_user": "Meus Documentos - Reaproveitar Documento"
},
"total": 5,
"status": "success",
"tabela": "AgAae8mmDT_SefGbTrNoX",
"modo": "insert"
}
]
}
Exemplo de Resposta - Nenhum registro encontrado (200 OK):
{
"message": "Nenhum registro encontrado.",
"filtro": {
"select": null,
"limit": 5,
"offset": 0,
"literal": "nr_cpf='000.000.000-00'"
}
}