Pular para o conteúdo

Introdução aos cenários

Um cenário é um grafo. Caixas (as ações) estão unidas por ligações que transportam valores e sinais. O motor executa uma caixa assim que todas as suas entradas ligadas receberam algo.

É o que, no Restorm, substitui os scripts de pré-pedido e de pós-pedido dos outros clientes de API — com uma vantagem decisiva: vê-se o fluxo.

Clique com o botão direito na árvore ▸ Adicionar ▸ Cenário.

Um cenário completo no editor: um nó Input/Param, um pedido HTTP, uma asserção sobre o código de estado, uma extração Handlebars, uma condição If e um Log

  • Encadear chamadas e passar um valor de uma para a outra: criar um recurso, obter o seu identificador e usá-lo na chamada seguinte.
  • Verificar: asserções, validação de esquema JSON, comparação.
  • Ramificar e iterar: if, switch, for, forEach, while, retry.
  • Orquestrar vários transportes: abrir uma subscrição MQTT, desencadear uma ação por HTTP e verificar que a mensagem chega.
  • Automatizar: o mesmo cenário corre na interface e sem janela em integração contínua.
NoçãoO que é
Caixa (nó)Uma ação. Estão disponíveis noventa tipos — ver o catálogo
PortaUm ponto de ligação numa caixa, tipado e orientado
LigaçãoUm fio entre uma porta de saída e uma porta de entrada
SeletorUm caminho aplicado ao valor em trânsito numa ligação (data.items[0].id)
Variável de execuçãoUm valor com nome, definido e relido durante a execução
ParâmetroUma entrada do cenário, fornecida no lançamento ou na linha de comandos
SaídaUm resultado exposto a quem chama o cenário

Não são enumeradas na configuração: fazem parte da moldura da caixa.

PortaSentidoFunção
inEntradaO acionador. Aceita várias ligações de entrada e espera então que todas tenham chegado — é a barreira “esperar que vários ramos terminem”
errorSaídaA rota de falha. Tudo o que corre mal sai por aí
doneSaídaEmitida quando a caixa e todo o seu subgrafo a jusante terminaram

A distinção entre done e uma saída de valor é importante: um valor sai assim que é produzido, enquanto done espera que tudo o que dele depende esteja terminado.

  1. Adicione uma ação Pedido HTTP e ligue-a a um pedido existente.
  2. Adicione uma ação Assert, com o operador eq.
  3. Puxe uma ligação da porta response do pedido até à entrada a da asserção e coloque o seletor status nessa ligação.
  4. Na asserção, defina b como 200.
  5. Clique em Reproduzir.

A asserção tem duas saídas, then e else: ligue um Log ou um Toast a cada uma para ver o resultado passar.