/router
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.
{
"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
}
}
]
}
}{
"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).