Przejdź do głównej zawartości

Serwery hostowane

Te akcje robią coś dokładnie odwrotnego niż pozostałe: zamiast wywoływać usługę, hostują ją przez czas trwania scenariusza.

Typowy przypadek użycia: przetestowanie webhooka. Scenariusz otwiera serwer, wyzwala wywołanie biznesowe, czeka na nadejście wywołania przychodzącego i sprawdza jego treść — wszystko w jednym grafie.

Akcja nasłuchu ma dwa wyjścia:

WyjścieEmisja
connectedSygnał, jednorazowo, gdy serwer zaczyna nasłuchiwać
servedJedna emisja na każde obsłużone wywołanie przychodzące, przenosząca { request, response }

Warto zauważyć, że nie ma tu wyjścia response: te bloki nie wykonują wywołania, lecz je odbierają.

Podobnie jak w przypadku połączeń, na blokach podłączonych do served należy włączyć „Odtwarzaj przy każdym odebranym zdarzeniu”, aby obsługiwały wszystkie wywołania, a nie tylko pierwsze.

Serwer HTTP ──connected──► Żądanie HTTP „wyzwolenie webhooka”
└───────served──────► Assert na request.body.event
następnie ──► Zamknięcie serwera HTTP
NasłuchZamknięcieProtokół
Serwer HTTPZamknięcie serwera HTTPHTTP
Serwer gRPCZamknięcie serwera gRPCgRPC
Serwer SOAPZamknięcie serwera SOAPSOAP — rozdzielanie według SOAPAction lub nazwy operacji
Serwer GraphQLZamknięcie serwera GraphQLGraphQL — udostępnia SDL i skonfigurowane resolwery
Serwer ODataZamknięcie serwera ODataOData — stosuje $filter, $select, $orderby, $top, $skip, $count, $expand, $batch

Dwa dodatkowe zamknięcia dotyczą serwerów z rodziny WebSocket: Zamknięcie serwera WebSocket oraz Zamknięcie serwera Socket.IO — zob. Połączenia i strumienie.

Odpowiedź jest tą skonfigurowaną na żądaniu, którym steruje dana akcja: status, nagłówki i treść w HTTP, symulowane metody w gRPC, operacje w SOAP, resolwery w GraphQL, dane w OData.

{{variables}} są rozwiązywane w momencie obsługi wywołania: zmiana zmiennej w czasie, gdy serwer nasłuchuje, zmienia kolejną odpowiedź. Zob. Tryb serwera.

Restorm otwiera tylko jedno gniazdo na port i rozdziela ruch zależnie od charakteru wywołania. Symulowany serwer HTTP i serwer WebSocket mogą więc nasłuchiwać razem na :8080.

Port zostaje zwolniony po zatrzymaniu jego ostatniej trasy.