Servidores alojados
Estas ações fazem o inverso das restantes: em vez de chamarem um serviço, alojam um durante a duração do cenário.
O caso de uso típico: testar um webhook. O cenário abre um servidor, aciona a chamada de negócio, espera que a chamada de entrada chegue e verifica o seu conteúdo — tudo num único grafo.
O princípio comum
Section titled “O princípio comum”Uma ação de escuta tem duas saídas:
| Saída | Emissão |
|---|---|
connected | Um sinal, uma vez, quando o servidor começa a escutar |
served | Uma emissão por cada chamada de entrada servida, que transporta { request, response } |
Note que não existe saída response: estas caixas não fazem chamadas,
recebem-nas.
Tal como nas ligações, ative “Repetir a cada evento recebido” nas caixas
ligadas a served para processar todas as chamadas e não apenas a primeira.
Servidor HTTP ──connected──► Pedido HTTP “acionar o webhook” └────────served───────► Assert sobre request.body.event depois ──► Fecho do servidor HTTPOs pares disponíveis
Section titled “Os pares disponíveis”| Escutar | Fechar | Protocolo |
|---|---|---|
| Servidor HTTP | Fecho do servidor HTTP | HTTP |
| Servidor gRPC | Fecho do servidor gRPC | gRPC |
| Servidor SOAP | Fecho do servidor SOAP | SOAP — encaminhamento por SOAPAction ou nome de operação |
| Servidor GraphQL | Fecho do servidor GraphQL | GraphQL — serve o SDL e os resolvedores configurados |
| Servidor OData | Fecho do servidor OData | OData — aplica $filter, $select, $orderby, $top, $skip, $count, $expand, $batch |
Duas ações de fecho adicionais dizem respeito aos servidores da família WebSocket: Fecho do servidor WebSocket e Fecho do servidor Socket.IO — consulte Ligações e fluxos.
O que o servidor responde
Section titled “O que o servidor responde”A resposta é a que está configurada no pedido que a ação comanda: estado, cabeçalhos e corpo em HTTP, métodos simulados em gRPC, operações em SOAP, resolvedores em GraphQL, dados em OData.
As {{variables}} são resolvidas no momento de servir: alterar uma variável
enquanto o servidor está a escutar muda a resposta seguinte. Consulte
Modo servidor.
Partilha de porta
Section titled “Partilha de porta”O Restorm abre apenas um socket por porta e encaminha conforme a natureza da
chamada. Um servidor HTTP de simulação e um servidor WebSocket podem, por isso,
escutar em conjunto em :8080.
A porta é libertada quando a sua última rota é encerrada.