Ir para o conteúdo

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 a cliente/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 a itens/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 configuracao do 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'"
  }
}