NN-Agent

$ cat router.md

Endpoint /router

Rotas dinâmicas: método, caminho, steps e commands, e como consultar e remover rotas.

POST

/router

Bearer

Publica uma rota dinâmica: liga um método e um caminho a uma lista de steps. A rota passa a responder na hora, sem reiniciar o serviço.

Entrada · corpo JSON

  • keystringobrig.: sim

    Nome único da rota.

  • pathstringobrig.: sim

    Caminho público. {NOME} vira um parâmetro de mesmo nome (maiúsculas importam).

  • methodenumobrig.: sim

    GET, POST, PUT ou DELETE.

  • x-request-timeout-msnumberobrig.: não

    Timeout da rota, em milissegundos.

  • response.statusnumberobrig.: não

    Status HTTP de sucesso, por exemplo 200 ou 201.

  • response.contentTypestringobrig.: não

    Tipo do conteúdo de resposta, por exemplo application/json.

  • service.single-threadbooleanobrig.: não

    true: steps em sequência. false: em paralelo.

  • service.single-resultbooleanobrig.: não

    true: cada step devolve 1 objeto em vez de uma lista.

  • service.stepsarrayobrig.: sim

    Lista de steps. Veja a tabela abaixo.

service.steps[] · cada step

  • aliasstringobrig.: não

    Nome sob o qual o resultado aparece na resposta.

  • abort-no-databooleanobrig.: não

    Interrompe a rota se o step não devolver dados.

  • commandobjectobrig.: sim

    O que executar. Veja a tabela abaixo.

steps[].command · o que executar

  • typeenumobrig.: sim

    Executor: QUERY, INSERT, UPDATE, DELETE, PROCEDURE, ANONYMOUS, GET, POST, PUT ou REMOVE.

  • databasestringobrig.: SQL

    key da conexão cadastrada em /database. Só nos executores SQL.

  • namestringobrig.: sim

    key do command cadastrado em /command.

  • return-resultbooleanobrig.: não

    true inclui o resultado na resposta da rota.

  • parametersarrayobrig.: não

    Valores fixos ou extraídos de um step anterior.

command.parameters[] · valores fixos ou extraídos

  • namestringobrig.: sim

    Nome do parâmetro do command.

  • valueanyobrig.: não

    Valor fixo (texto, número ou booleano).

  • extractbooleanobrig.: não

    true lê o valor do resultado em lista de um step anterior.

  • fieldstringobrig.: não

    Campo a extrair quando extract é true.

Parâmetros de path e de query chegam sozinhos pelo nome. Só declare parameters para valores fixos.

Requisição · 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
        }
      }
    ]
  }
}
Resposta · 201 Created
{
  "id": 1,
  "key": "usuario-por-id",
  "path": "/api/v1/usuarios/{ID}",
  "method": "GET",
  "response": {
    "status": 200
  },
  "service": {
    "single-thread": true,
    "single-result": true,
    "steps": [
      {
        "alias": "",
        "command": {
          "type": "QUERY",
          "database": "MINHA_BASE",
          "name": "buscar-usuario",
          "return-result": true,
          "parameters": null
        },
        "abort-no-data": false
      }
    ]
  }
}

Erros: 400 para key duplicada ou executor desconhecido. Para consultar e remover: GET /router (filtros id, key, method, path), GET /router/{id}, DELETE /router?key= (200, desregistra a rota) e DELETE /router/{id} (204).

Próxima página

Certificados, status e rotas dinâmicas

Continuar →