NN-Agent

COMO FUNCIONA

Quatro chamadas e a rota está no ar

Tudo é feito pela própria API do N-Agent. As rotas de configuração (/database, /command, /router) exigem o cabeçalho Authorization: Bearer <token>.

1

Cadastre a conexão com o banco

POST/database

O N-Agent abre o pool de conexões na hora e guarda a configuração. A senha nunca é devolvida nas respostas.

POST /database · application/json
{
  "key": "MINHA_BASE",
  "driver": "oracle",
  "host": "db.empresa.com.br",
  "port": 1521,
  "database": "ORCL",
  "user": "usuario",
  "password": "••••••",
  "pool": {
    "maxOpenConns": 10,
    "maxIdleConns": 2
  }
}

Campo a campo

key
nome que você dá à conexão; os steps usam esse nome
driver
oracle, postgres, mysql ou sqlserver
host · port
onde o banco está
database
nome do banco (service name no Oracle)
user · password
credenciais de acesso
pool
limite de conexões abertas e ociosas
2

Cadastre o SQL (ou a chamada HTTP)

POST/command

Um command é uma operação reutilizável. Os parâmetros :NOME do SQL são detectados sozinhos e marcados como obrigatórios.

POST /command · application/json
{
  "key": "buscar-usuario",
  "databaseType": "oracle",
  "type": "QUERY",
  "sql": "SELECT ID, NOME FROM USUARIOS WHERE ID = :ID",
  "parameters": [
    {
      "name": "ID",
      "type": "number",
      "required": true
    }
  ]
}

Campo a campo

key
nome do command, usado na rota
databaseType
dialeto do SQL
type
QUERY, INSERT, UPDATE, DELETE, PROCEDURE, ANONYMOUS, GET, POST, PUT ou REMOVE
sql
:NOME (Oracle) ou @NOME (SQL Server) são parâmetros
parameters
descreve cada parâmetro: nome, tipo e se é obrigatório
3

Publique a rota

POST/router

Liga um método e um caminho a uma lista de steps. A rota passa a responder na hora, sem reiniciar o serviço.

POST /router · application/json
{
  "key": "usuario-por-id",
  "path": "/api/v1/usuarios/{ID}",
  "method": "GET",
  "response": {
    "status": 200
  },
  "service": {
    "single-thread": true,
    "single-result": true,
    "steps": [
      {
        "command": {
          "type": "QUERY",
          "database": "MINHA_BASE",
          "name": "buscar-usuario",
          "return-result": true
        }
      }
    ]
  }
}

Campo a campo

path
endereço público; {ID} vira o parâmetro ID (mesmo nome do :ID no SQL, maiúsculas importam)
method
GET, POST, PUT ou DELETE
response.status
status HTTP de sucesso
single-thread
true executa os steps em ordem
single-result
true devolve 1 objeto em vez de uma lista
steps
cada step aponta para um command; return-result decide se entra na resposta
4

Chame a rota

GET/api/v1/usuarios/10

As rotas dinâmicas não exigem Bearer (proteja no gateway). O N-Agent executa o SQL com ID = 10 e devolve o resultado.

200 OK · application/json
{
  "ID": "10",
  "NOME": "Maria"
}

Campo a campo

ID · NOME
nomes das colunas, em MAIÚSCULAS no Oracle
"10"
colunas NUMBER chegam como texto
sem linhas
resposta vazia, com o status configurado
erro do banco
HTTP 400 com a mensagem ORA-xxxxx

Próxima página

Arquitetura e executores

Continuar →